From 4e910c0e64080e07ca439d22a12a60785305718e Mon Sep 17 00:00:00 2001 From: Packit Date: Sep 15 2020 12:07:38 +0000 Subject: libwnck3-3.24.1 base --- diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..b1de1b6 --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1282 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + +1.1 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. Installers may use special +options at configuration time for changing the default behaviour. The +command: + + ./configure --disable-nls + +will _totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl' library +and will decide to use it. If not, you may have to to use the +`--with-libintl-prefix' option to tell `configure' where to look for it. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.2 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.3 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.4 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of June +2010. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca + +--------------------------------------------------+ + a2ps | [] [] | + aegis | | + ant-phone | | + anubis | | + aspell | [] [] | + bash | | + bfd | | + bibshelf | [] | + binutils | | + bison | | + bison-runtime | [] | + bluez-pin | [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] [] | + cpio | | + cppi | | + cpplib | [] | + cryptsetup | | + dfarc | | + dialog | [] [] | + dico | | + diffutils | [] | + dink | | + doodle | | + e2fsprogs | [] | + enscript | [] | + exif | | + fetchmail | [] | + findutils | [] | + flex | [] | + freedink | | + gas | | + gawk | [] [] | + gcal | [] | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] | + gettext-tools | [] [] | + gip | [] | + gjay | | + gliv | [] | + glunarclock | [] [] | + gnubiff | | + gnucash | [] | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | | + gold | | + gpe-aerial | | + gpe-beam | | + gpe-bluetooth | | + gpe-calendar | | + gpe-clock | [] | + gpe-conf | | + gpe-contacts | | + gpe-edit | | + gpe-filemanager | | + gpe-go | | + gpe-login | | + gpe-ownerinfo | [] | + gpe-package | | + gpe-sketchbook | | + gpe-su | [] | + gpe-taskmanager | [] | + gpe-timesheet | [] | + gpe-today | [] | + gpe-todo | | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | [] [] | + gsasl | | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] [] [] | + gtick | | + gtkam | [] | + gtkorphan | [] | + gtkspell | [] [] [] | + gutenprint | | + hello | [] | + help2man | | + hylafax | | + idutils | | + indent | [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | | + iso_639 | [] [] [] [] | + iso_639_3 | | + jwhois | | + kbd | | + keytouch | [] | + keytouch-editor | | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | | + ld | [] | + leafpad | [] [] | + libc | [] [] | + libexif | () | + libextractor | | + libgnutls | | + libgpewidget | | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | [] | + libidn | | + lifelines | | + liferea | [] [] | + lilypond | | + linkdr | [] | + lordsawar | | + lprng | | + lynx | [] | + m4 | | + mailfromd | | + mailutils | | + make | | + man-db | | + man-db-manpages | | + minicom | | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | | + psmisc | | + pspp | [] | + pwdutils | | + radius | [] | + recode | [] [] | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | | + solfege-manual | | + soundtracker | | + sp | | + sysstat | | + tar | [] | + texinfo | | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] [] | + wyslij-po | | + xchat | [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] | + +--------------------------------------------------+ + af am an ar as ast az be be@latin bg bn_IN bs ca + 6 0 1 2 3 19 1 10 3 28 3 1 38 + + crh cs da de el en en_GB en_ZA eo es et eu fa + +-------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] () | + anubis | [] [] | + aspell | [] [] [] [] [] | + bash | [] [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] | + bison | [] [] | + bison-runtime | [] [] [] [] | + bluez-pin | [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] [] [] | + cflow | [] [] | + clisp | [] [] [] [] | + coreutils | [] [] [] [] | + cpio | | + cppi | | + cpplib | [] [] [] | + cryptsetup | [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] | + dink | [] [] [] | + doodle | [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + exif | () [] [] | + fetchmail | [] [] () [] [] [] | + findutils | [] [] [] | + flex | [] [] | + freedink | [] [] [] | + gas | [] | + gawk | [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] | + gettext-runtime | [] [] [] [] | + gettext-tools | [] [] [] | + gip | [] [] [] [] | + gjay | [] | + gliv | [] [] [] | + glunarclock | [] [] | + gnubiff | () | + gnucash | [] () () () () | + gnuedu | [] [] | + gnulib | [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] | + gpe-aerial | [] [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] [] [] | + gpe-edit | [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] () [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] | + grub | [] [] | + gsasl | [] | + gss | | + gst-plugins-bad | [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] () [] | + gtkam | [] [] () [] [] | + gtkorphan | [] [] [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | [] [] [] | + hello | [] [] [] [] | + help2man | [] | + hylafax | [] [] | + idutils | [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] [] [] [] () [] [] [] () | + iso_3166_2 | () | + iso_4217 | [] [] [] () [] [] | + iso_639 | [] [] [] [] () [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | [] [] [] [] [] | + keytouch | [] [] | + keytouch-editor | [] [] | + keytouch-keyboa... | [] | + klavaro | [] [] [] [] | + latrine | [] () | + ld | [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | [] [] | + libgphoto2 | [] () | + libgphoto2_port | [] () [] | + libgsasl | | + libiconv | [] [] [] [] [] | + libidn | [] [] [] | + lifelines | [] () | + liferea | [] [] [] [] [] | + lilypond | [] [] [] | + linkdr | [] [] [] | + lordsawar | [] | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] [] | + man-db | | + man-db-manpages | | + minicom | [] [] [] [] | + mkisofs | | + myserver | | + nano | [] [] [] | + opcodes | [] [] | + parted | [] [] | + pies | | + popt | [] [] [] [] [] | + psmisc | [] [] [] | + pspp | [] | + pwdutils | [] | + radius | [] | + recode | [] [] [] [] [] [] | + rosegarden | () () () | + rpm | [] [] [] | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] | + sed | [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | | + skencil | [] () [] | + solfege | [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] [] | + sp | [] | + sysstat | [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] | + tin | [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] | + vice | () () | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] | + wyslij-po | | + xchat | [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] [] | + +-------------------------------------------------+ + crh cs da de el en en_GB en_ZA eo es et eu fa + 5 64 105 117 18 1 8 0 28 89 18 19 0 + + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + +----------------------------------------------------+ + a2ps | [] [] [] [] | + aegis | [] [] | + ant-phone | [] [] | + anubis | [] [] [] [] | + aspell | [] [] [] [] | + bash | [] [] [] [] | + bfd | [] [] [] | + bibshelf | [] [] [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] | + bison-runtime | [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] | + buzztard | [] | + cflow | [] [] [] | + clisp | [] | + coreutils | [] [] [] [] [] | + cpio | [] [] [] [] | + cppi | [] [] | + cpplib | [] [] [] | + cryptsetup | [] [] [] | + dfarc | [] [] [] | + dialog | [] [] [] [] [] [] [] | + dico | | + diffutils | [] [] [] [] [] [] [] [] [] | + dink | [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + exif | [] [] [] [] [] [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] [] | + flex | [] [] [] | + freedink | [] [] [] | + gas | [] [] | + gawk | [] [] [] [] () [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] [] [] | + gjay | [] | + gliv | [] () | + glunarclock | [] [] [] [] | + gnubiff | () [] () | + gnucash | () () () () () [] | + gnuedu | [] [] | + gnulib | [] [] [] [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gold | [] [] | + gpe-aerial | [] [] [] | + gpe-beam | [] [] [] [] | + gpe-bluetooth | [] [] [] [] | + gpe-calendar | [] [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] [] [] | + gpe-contacts | [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] [] | + gpe-go | [] [] [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] [] [] | + gpe-sketchbook | [] [] [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] | + gpe-todo | [] [] [] | + gphoto2 | [] [] [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | [] [] [] | + gramadoir | [] [] [] | + grep | [] [] | + grub | [] [] [] [] | + gsasl | [] [] [] [] [] | + gss | [] [] [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] [] [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] [] [] | + gtkspell | [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] [] [] | + hello | [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] [] | + indent | [] [] [] [] [] [] [] [] | + iso_15924 | [] () [] [] | + iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | () [] [] [] | + iso_4217 | [] () [] [] [] [] | + iso_639 | [] () [] [] [] [] [] [] [] | + iso_639_3 | () [] [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] [] [] [] | + keytouch-editor | [] [] [] [] [] | + keytouch-keyboa... | [] [] [] [] [] | + klavaro | [] [] | + latrine | [] [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] [] () | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] [] | + libidn | [] [] [] [] | + lifelines | () | + liferea | [] [] [] [] | + lilypond | [] [] | + linkdr | [] [] [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] [] [] | + m4 | [] [] [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] [] | + man-db | [] [] | + man-db-manpages | [] | + minicom | [] [] [] [] [] | + mkisofs | [] [] [] [] | + myserver | | + nano | [] [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] [] | + pies | | + popt | [] [] [] [] [] [] [] [] [] | + psmisc | [] [] [] | + pspp | | + pwdutils | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () () () () | + rpm | [] [] | + rush | | + sarg | [] | + screem | [] [] | + scrollkeeper | [] [] [] [] | + sed | [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] | + shishi | [] | + skencil | [] | + solfege | [] [] [] [] | + solfege-manual | [] [] | + soundtracker | [] [] | + sp | [] () | + sysstat | [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux-ng | [] [] [] [] [] [] | + vice | () () () | + vmm | [] | + vorbis-tools | [] | + wastesedge | () () | + wdiff | [] | + wget | [] [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] [] | + +----------------------------------------------------+ + fi fr ga gl gu he hi hr hu hy id is it ja ka kn + 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 + + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + +-----------------------------------------------+ + a2ps | [] | + aegis | | + ant-phone | | + anubis | [] [] | + aspell | [] | + bash | | + bfd | | + bibshelf | [] [] | + binutils | | + bison | [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + bombono-dvd | | + buzztard | | + cflow | | + clisp | | + coreutils | [] | + cpio | | + cppi | | + cpplib | | + cryptsetup | | + dfarc | [] | + dialog | [] [] [] [] [] | + dico | | + diffutils | [] [] | + dink | | + doodle | | + e2fsprogs | | + enscript | | + exif | [] | + fetchmail | | + findutils | | + flex | | + freedink | [] | + gas | | + gawk | | + gcal | | + gcc | | + gettext-examples | [] [] [] [] | + gettext-runtime | [] | + gettext-tools | [] | + gip | [] [] | + gjay | | + gliv | | + glunarclock | [] | + gnubiff | | + gnucash | () () () () | + gnuedu | | + gnulib | | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gold | | + gpe-aerial | [] | + gpe-beam | [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] | + gpe-clock | [] [] [] [] [] | + gpe-conf | [] [] | + gpe-contacts | [] [] | + gpe-edit | [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] | + gpe-timesheet | [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] [] | + gphoto2 | | + gprof | [] | + gpsdrive | | + gramadoir | | + grep | | + grub | | + gsasl | | + gss | | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] [] [] | + gstreamer | | + gtick | | + gtkam | [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | | + hello | [] [] [] | + help2man | | + hylafax | | + idutils | | + indent | | + iso_15924 | [] [] | + iso_3166 | [] [] () [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] | + iso_639 | [] [] | + iso_639_3 | [] | + jwhois | [] | + kbd | | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + klavaro | [] | + latrine | [] | + ld | | + leafpad | [] [] [] | + libc | [] | + libexif | | + libextractor | | + libgnutls | [] | + libgpewidget | [] [] | + libgpg-error | | + libgphoto2 | | + libgphoto2_port | | + libgsasl | | + libiconv | | + libidn | | + lifelines | | + liferea | | + lilypond | | + linkdr | | + lordsawar | | + lprng | | + lynx | | + m4 | | + mailfromd | | + mailutils | | + make | [] | + man-db | | + man-db-manpages | | + minicom | [] | + mkisofs | | + myserver | | + nano | [] [] | + opcodes | | + parted | | + pies | | + popt | [] [] [] | + psmisc | | + pspp | | + pwdutils | | + radius | | + recode | | + rosegarden | | + rpm | | + rush | | + sarg | | + screem | | + scrollkeeper | [] [] | + sed | | + sharutils | | + shishi | | + skencil | | + solfege | [] | + solfege-manual | | + soundtracker | | + sp | | + sysstat | [] | + tar | [] | + texinfo | [] | + tin | | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | | + vice | | + vmm | | + vorbis-tools | | + wastesedge | | + wdiff | | + wget | [] | + wyslij-po | | + xchat | [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +-----------------------------------------------+ + ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne + 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 + + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + +---------------------------------------------------+ + a2ps | [] [] [] [] [] [] [] [] | + aegis | [] [] [] | + ant-phone | [] [] | + anubis | [] [] [] | + aspell | [] [] [] [] [] | + bash | [] [] | + bfd | [] | + bibshelf | [] [] | + binutils | [] [] | + bison | [] [] [] | + bison-runtime | [] [] [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] | + bombono-dvd | [] () | + buzztard | [] [] | + cflow | [] | + clisp | [] [] | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cppi | [] | + cpplib | [] | + cryptsetup | [] | + dfarc | [] | + dialog | [] [] [] [] | + dico | [] | + diffutils | [] [] [] [] [] [] | + dink | () | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + exif | [] [] [] () [] | + fetchmail | [] [] [] [] | + findutils | [] [] [] [] [] | + flex | [] [] [] [] [] | + freedink | [] [] | + gas | | + gawk | [] [] [] [] | + gcal | | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] | + gip | [] [] [] [] [] | + gjay | | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] | + gnubiff | [] () | + gnucash | [] () () () | + gnuedu | [] | + gnulib | [] [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] [] | + gold | | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-bluetooth | [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] [] | + gphoto2 | [] [] [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + grub | [] [] [] | + gsasl | [] [] [] [] | + gss | [] [] [] | + gst-plugins-bad | [] [] [] [] [] [] | + gst-plugins-base | [] [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] [] [] | + gutenprint | [] [] | + hello | [] [] [] [] | + help2man | [] [] | + hylafax | [] | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | [] [] [] [] | + iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | + iso_3166_2 | [] [] [] | + iso_4217 | [] [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] [] [] | + iso_639_3 | [] [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] [] [] | + keytouch-editor | [] [] [] | + keytouch-keyboa... | [] [] [] | + klavaro | [] [] | + latrine | [] [] | + ld | | + leafpad | [] [] [] [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] () [] | + libextractor | | + libgnutls | [] [] | + libgpewidget | [] [] [] | + libgpg-error | [] [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] [] [] [] | + libgsasl | [] [] [] [] [] | + libiconv | [] [] [] [] [] | + libidn | [] [] | + lifelines | [] [] | + liferea | [] [] [] [] [] () () [] | + lilypond | [] | + linkdr | [] [] [] | + lordsawar | | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] | + make | [] [] [] [] | + man-db | [] [] [] | + man-db-manpages | [] [] [] | + minicom | [] [] [] [] | + mkisofs | [] [] [] | + myserver | | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] [] [] [] | + pies | [] | + popt | [] [] [] [] | + psmisc | [] [] [] | + pspp | [] [] | + pwdutils | [] | + radius | [] [] [] | + recode | [] [] [] [] [] [] [] [] | + rosegarden | () () | + rpm | [] [] [] | + rush | [] [] | + sarg | | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] [] [] [] | + solfege-manual | [] [] [] | + soundtracker | [] | + sp | | + sysstat | [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux-ng | [] [] [] [] [] | + vice | [] | + vmm | [] | + vorbis-tools | [] [] | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] [] [] [] [] [] | + wyslij-po | [] [] [] | + xchat | [] [] [] [] [] [] [] [] [] | + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + +---------------------------------------------------+ + nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr + 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 + + sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + +---------------------------------------------------+ + a2ps | [] [] [] [] [] | 27 + aegis | [] | 9 + ant-phone | [] [] [] [] | 9 + anubis | [] [] [] [] | 15 + aspell | [] [] [] | 20 + bash | [] [] [] | 12 + bfd | [] | 6 + bibshelf | [] [] [] | 16 + binutils | [] [] | 8 + bison | [] [] | 12 + bison-runtime | [] [] [] [] [] [] | 29 + bluez-pin | [] [] [] [] [] [] [] [] | 37 + bombono-dvd | [] | 4 + buzztard | [] | 7 + cflow | [] [] [] | 9 + clisp | | 10 + coreutils | [] [] [] [] | 22 + cpio | [] [] [] [] [] [] | 13 + cppi | [] [] | 5 + cpplib | [] [] [] [] [] [] | 14 + cryptsetup | [] [] | 7 + dfarc | [] | 9 + dialog | [] [] [] [] [] [] [] | 30 + dico | [] | 2 + diffutils | [] [] [] [] [] [] | 30 + dink | | 4 + doodle | [] [] | 7 + e2fsprogs | [] [] [] | 11 + enscript | [] [] [] [] | 17 + exif | [] [] [] | 16 + fetchmail | [] [] [] | 17 + findutils | [] [] [] [] [] | 20 + flex | [] [] [] [] | 15 + freedink | [] | 10 + gas | [] | 4 + gawk | [] [] [] [] | 18 + gcal | [] [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] [] | 34 + gettext-runtime | [] [] [] [] [] [] [] | 29 + gettext-tools | [] [] [] [] [] [] | 22 + gip | [] [] [] [] | 22 + gjay | [] | 3 + gliv | [] [] [] | 14 + glunarclock | [] [] [] [] [] | 19 + gnubiff | [] [] | 4 + gnucash | () [] () [] () | 10 + gnuedu | [] [] | 7 + gnulib | [] [] [] [] | 16 + gnunet | [] | 1 + gnunet-gtk | [] [] [] | 5 + gnutls | [] [] [] | 10 + gold | [] | 4 + gpe-aerial | [] [] [] | 18 + gpe-beam | [] [] [] | 19 + gpe-bluetooth | [] [] [] | 13 + gpe-calendar | [] [] [] [] | 12 + gpe-clock | [] [] [] [] [] | 28 + gpe-conf | [] [] [] [] | 20 + gpe-contacts | [] [] [] | 17 + gpe-edit | [] [] [] | 12 + gpe-filemanager | [] [] [] [] | 16 + gpe-go | [] [] [] [] [] | 25 + gpe-login | [] [] [] | 11 + gpe-ownerinfo | [] [] [] [] [] | 25 + gpe-package | [] [] [] | 13 + gpe-sketchbook | [] [] [] | 20 + gpe-su | [] [] [] [] [] | 30 + gpe-taskmanager | [] [] [] [] [] | 29 + gpe-timesheet | [] [] [] [] [] | 25 + gpe-today | [] [] [] [] [] [] | 30 + gpe-todo | [] [] [] [] | 17 + gphoto2 | [] [] [] [] [] | 24 + gprof | [] [] [] | 15 + gpsdrive | [] [] [] | 11 + gramadoir | [] [] [] | 11 + grep | [] [] [] | 10 + grub | [] [] [] | 14 + gsasl | [] [] [] [] | 14 + gss | [] [] [] | 11 + gst-plugins-bad | [] [] [] [] | 26 + gst-plugins-base | [] [] [] [] [] | 24 + gst-plugins-good | [] [] [] [] | 24 + gst-plugins-ugly | [] [] [] [] [] | 29 + gstreamer | [] [] [] [] | 22 + gtick | [] [] [] | 13 + gtkam | [] [] [] | 20 + gtkorphan | [] [] [] | 14 + gtkspell | [] [] [] [] [] [] [] [] [] | 45 + gutenprint | [] | 10 + hello | [] [] [] [] [] [] | 21 + help2man | [] [] | 7 + hylafax | [] | 5 + idutils | [] [] [] [] | 17 + indent | [] [] [] [] [] [] | 30 + iso_15924 | () [] () [] [] | 16 + iso_3166 | [] [] () [] [] () [] [] [] () | 53 + iso_3166_2 | () [] () [] | 9 + iso_4217 | [] () [] [] () [] [] | 26 + iso_639 | [] [] [] () [] () [] [] [] [] | 38 + iso_639_3 | [] () | 8 + jwhois | [] [] [] [] [] | 16 + kbd | [] [] [] [] [] | 15 + keytouch | [] [] [] | 16 + keytouch-editor | [] [] [] | 14 + keytouch-keyboa... | [] [] [] | 14 + klavaro | [] | 11 + latrine | [] [] [] | 10 + ld | [] [] [] [] | 11 + leafpad | [] [] [] [] [] [] | 33 + libc | [] [] [] [] [] | 21 + libexif | [] () | 7 + libextractor | [] | 1 + libgnutls | [] [] [] | 9 + libgpewidget | [] [] [] | 14 + libgpg-error | [] [] [] | 9 + libgphoto2 | [] [] | 8 + libgphoto2_port | [] [] [] [] | 14 + libgsasl | [] [] [] | 13 + libiconv | [] [] [] [] | 21 + libidn | () [] [] | 11 + lifelines | [] | 4 + liferea | [] [] [] | 21 + lilypond | [] | 7 + linkdr | [] [] [] [] [] | 17 + lordsawar | | 1 + lprng | [] | 3 + lynx | [] [] [] [] | 17 + m4 | [] [] [] [] | 19 + mailfromd | [] [] | 3 + mailutils | [] | 5 + make | [] [] [] [] | 21 + man-db | [] [] [] | 8 + man-db-manpages | | 4 + minicom | [] [] | 16 + mkisofs | [] [] | 9 + myserver | | 0 + nano | [] [] [] [] | 21 + opcodes | [] [] [] | 11 + parted | [] [] [] [] [] | 15 + pies | [] [] | 3 + popt | [] [] [] [] [] [] | 27 + psmisc | [] [] | 11 + pspp | | 4 + pwdutils | [] [] | 6 + radius | [] [] | 9 + recode | [] [] [] [] | 28 + rosegarden | () | 0 + rpm | [] [] [] | 11 + rush | [] [] | 4 + sarg | | 1 + screem | [] | 3 + scrollkeeper | [] [] [] [] [] | 27 + sed | [] [] [] [] [] | 30 + sharutils | [] [] [] [] [] | 22 + shishi | [] | 3 + skencil | [] [] | 7 + solfege | [] [] [] [] | 16 + solfege-manual | [] | 8 + soundtracker | [] [] [] | 9 + sp | [] | 3 + sysstat | [] [] | 15 + tar | [] [] [] [] [] [] | 23 + texinfo | [] [] [] [] [] | 17 + tin | | 4 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux-ng | [] [] [] [] | 20 + vice | () () | 1 + vmm | [] | 4 + vorbis-tools | [] | 6 + wastesedge | | 2 + wdiff | [] [] | 7 + wget | [] [] [] [] [] | 26 + wyslij-po | [] [] | 8 + xchat | [] [] [] [] [] [] | 36 + xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 + xkeyboard-config | [] [] [] | 22 + +---------------------------------------------------+ + 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW + 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If June 2010 seems to be old, you may fetch a more recent copy of +this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date +matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.5 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..875e507 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,2 @@ +Havoc Pennington +Vincent Untz diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..5bc8fb2 --- /dev/null +++ b/COPYING @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..f329195 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,50 @@ +=== ChangeLog discontinued === + + With the move to git, this module is switching from a ChangeLog file to + relying on commit messages to provide change history. Please write commit + messages in the format described at http://live.gnome.org/Git/CommitMessages + + Below is a copy of this format: + +=== begin example commit === +tag: Short explanation of the commit + +Longer explanation explaining exactly what's changed, whether any +external or private interfaces changed, what bugs were fixed (with bug +tracker reference if applicable) and so forth. Be concise but not too brief. +=== end example commit === + + - The commit message is mainly for the other people, so they should be able + to understand it now and six months later. + + - Always add a brief description of the commit to the _first_ line of the + commit and terminate by two newlines (it will work without the second + newline, but that is not nice for the interfaces). + + - First line (the brief description) must only be one sentence and should + start with a capital letter unless it starts with a lowercase symbol or + identifier. Don't use a trailing period either. Don't exceed 72 characters. + + - You can prefix the first line with one tag, to make it easier to know to + which part of the module the commit applies. For example, a commit with + "fish: Make it work with newer fortune" in the gnome-panel module clearly + applies to the fish applet. + + - The main description (the body) is normal prose and should use normal + punctuation and capital letters where appropriate. Normally, for patches + sent to a mailing list, the body is copied from there. This main + description can be empty if the change is self-explanatory (eg: "Add DOAP + file"). + + - When committing code on behalf of others use the --author option, e.g. git + commit -a --author "Joe Coder ". + + - When referring to a bug, you can use this form: bgo#12345. Use bgo for + bugzilla.gnome.org, but you can also reference bugs in other bug trackers: + rh means bugzilla.redhat.com, bnc means bugzilla.novell.com, lp means + launchpad.net, etc. Whenever possible, use the full URL of the bug, though. + + - When a commit closes a bug, the commit message should contain a line like: + Closes: http://bugzilla.gnome.org/show_bug.cgi?id=12345 + or simply: + http://bugzilla.gnome.org/show_bug.cgi?id=12345 diff --git a/HACKING b/HACKING new file mode 100644 index 0000000..e8dcbcd --- /dev/null +++ b/HACKING @@ -0,0 +1,37 @@ +Substantive patches can be approved by any two of the current +maintainers (see the MAINTAINERS file), obvious patches by any one of +them. + +libwnck sits halfway between the panel (as an applet) and the window +manager. libwnck can be used by other applications and thus isn't +technically limited to usage as an applet, but it is not stable and +thus other usage isn't recommended unless you want to update your app +often. If you'd like to work on libwnck, some useful places to look +for more information are: + + gnome-applets/HACKING + The HACKING file in gnome-applets contains links, tips, and + information on writing panel applets, debugging them, and various + best practices with them + + metacity/HACKING + The HACKING file in metacity contains information on the ICCCM and + EWMH which cover relevant X and freedesktop.org standards for + communication between the window manager, specialized programs + like the window list and workspace switcher applets, and clients. + + http://pobox.com/~hp/features.html + devilspie is for crack. Not libwnck. + + gnome-panel/applets/wncklet/ + The actual panel applets based on libwnck (the window list, window + selector, workspace switcher and show desktop button) are found in + this directory under gnome-panel, and all run as the process + "wnck-applet". + + rationales.txt + This file contains bugs that explains UI choices we've made (kind + of empty at the moment, but we'll fill it in over time--it's + similar to the file with the same name in the metacity module), + and also has a bunch of tracker bugs which serve to help + categorize bugs. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..2099840 --- /dev/null +++ b/INSTALL @@ -0,0 +1,370 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000..6d5b92e --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,29 @@ +Currently active maintainers +---------------------------- + +Elijah Newren +E-mail: newren@gmail.com +Userid: newren + +Marco Trevisan +E-mail: mail@3v1n0.net +Userid: marcotrevi + +Semi-active maintainers +----------------------- + +I don't know Havoc's userid, so I just commented this :-) -- Vincent + +#Havoc Pennington +#E-mail: hp@redhat.com +#Userid: hp + +Non-active maintainers, who have a good understanding of the code +----------------------------------------------------------------- + +#Mark McLoughlin +#E-mail: mark@skynet.ie + +#Vincent Untz +#E-mail: vuntz@gnome.org +#Userid: vuntz diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..a7a9031 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,54 @@ +NULL = + +SUBDIRS = libwnck doc po + +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libwnck-3.0.pc + +EXTRA_DIST = \ + HACKING \ + MAINTAINERS + +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \ + $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ + `find "$(srcdir)/m4" -type f -name "*.m4" -print` \ + $(srcdir)/ABOUT-NLS \ + $(srcdir)/INSTALL \ + $(srcdir)/build-aux/config.rpath \ + $(srcdir)/config.h.in~ \ + $(srcdir)/configure \ + $(srcdir)/gtk-doc.make \ + $(srcdir)/po/Makefile.in.in \ + $(srcdir)/po/Makevars.template \ + $(srcdir)/po/Rules-quot \ + $(srcdir)/po/boldquot.sed \ + $(srcdir)/po/en@boldquot.header \ + $(srcdir)/po/en@quot.header \ + $(srcdir)/po/libwnck-3.0.pot \ + $(srcdir)/po/insert-header.sin \ + $(srcdir)/po/quot.sed \ + $(srcdir)/po/remove-potcdate.sin \ + $(srcdir)/po/stamp-po \ + $(NULL) + +CHANGELOG_GIT_RANGE = LIBWNCK_2_26_1.. +dist-hook: + $(AM_V_GEN)if test -d "$(srcdir)/.git"; then \ + ( echo '# Generated by Makefile. Do not edit.'; echo; \ + GIT_DIR="$(top_srcdir)/.git" ./missing --run \ + git log $(CHANGELOG_GIT_RANGE) --no-color -M -C --name-status ) \ + > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git checkout is required to generate ChangeLog >&2; \ + fi + +GITIGNOREFILES = $(PACKAGE)-\*.tar.{gz,bz2,xz} +-include $(top_srcdir)/git.mk diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..ecb12df --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1008 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = libwnck-3.0.pc libwnck-3.0-uninstalled.pc +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgconfigdir)" +DATA = $(pkgconfig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/libwnck-3.0-uninstalled.pc.in \ + $(srcdir)/libwnck-3.0.pc.in $(top_srcdir)/build-aux/compile \ + $(top_srcdir)/build-aux/config.guess \ + $(top_srcdir)/build-aux/config.rpath \ + $(top_srcdir)/build-aux/config.sub \ + $(top_srcdir)/build-aux/install-sh \ + $(top_srcdir)/build-aux/ltmain.sh \ + $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS README build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/install-sh build-aux/ltmain.sh \ + build-aux/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz +DIST_TARGETS = dist-xz +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBWNCK_AGE = @LIBWNCK_AGE@ +LIBWNCK_CFLAGS = @LIBWNCK_CFLAGS@ +LIBWNCK_CURRENT = @LIBWNCK_CURRENT@ +LIBWNCK_LIBS = @LIBWNCK_LIBS@ +LIBWNCK_REVISION = @LIBWNCK_REVISION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STARTUP_NOTIFICATION_CFLAGS = @STARTUP_NOTIFICATION_CFLAGS@ +STARTUP_NOTIFICATION_LIBS = @STARTUP_NOTIFICATION_LIBS@ +STARTUP_NOTIFICATION_PACKAGE = @STARTUP_NOTIFICATION_PACKAGE@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WNCK_MAJOR_VERSION = @WNCK_MAJOR_VERSION@ +WNCK_MICRO_VERSION = @WNCK_MICRO_VERSION@ +WNCK_MINOR_VERSION = @WNCK_MINOR_VERSION@ +X11_PACKAGE = @X11_PACKAGE@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XLIB_CFLAGS = @XLIB_CFLAGS@ +XLIB_LIBS = @XLIB_LIBS@ +XMKMF = @XMKMF@ +XRES_PACKAGE = @XRES_PACKAGE@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +SUBDIRS = libwnck doc po +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libwnck-3.0.pc +EXTRA_DIST = \ + HACKING \ + MAINTAINERS + +MAINTAINERCLEANFILES = \ + $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \ + $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \ + $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL) \ + `find "$(srcdir)/m4" -type f -name "*.m4" -print` \ + $(srcdir)/ABOUT-NLS \ + $(srcdir)/INSTALL \ + $(srcdir)/build-aux/config.rpath \ + $(srcdir)/config.h.in~ \ + $(srcdir)/configure \ + $(srcdir)/gtk-doc.make \ + $(srcdir)/po/Makefile.in.in \ + $(srcdir)/po/Makevars.template \ + $(srcdir)/po/Rules-quot \ + $(srcdir)/po/boldquot.sed \ + $(srcdir)/po/en@boldquot.header \ + $(srcdir)/po/en@quot.header \ + $(srcdir)/po/libwnck-3.0.pot \ + $(srcdir)/po/insert-header.sin \ + $(srcdir)/po/quot.sed \ + $(srcdir)/po/remove-potcdate.sin \ + $(srcdir)/po/stamp-po \ + $(NULL) + +CHANGELOG_GIT_RANGE = LIBWNCK_2_26_1.. +GITIGNOREFILES = $(PACKAGE)-\*.tar.{gz,bz2,xz} +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +libwnck-3.0.pc: $(top_builddir)/config.status $(srcdir)/libwnck-3.0.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +libwnck-3.0-uninstalled.pc: $(top_builddir)/config.status $(srcdir)/libwnck-3.0-uninstalled.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgconfigDATA + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + +dist-hook: + $(AM_V_GEN)if test -d "$(srcdir)/.git"; then \ + ( echo '# Generated by Makefile. Do not edit.'; echo; \ + GIT_DIR="$(top_srcdir)/.git" ./missing --run \ + git log $(CHANGELOG_GIT_RANGE) --no-color -M -C --name-status ) \ + > ChangeLog.tmp \ + && mv -f ChangeLog.tmp $(distdir)/ChangeLog \ + || ( rm -f ChangeLog.tmp ; echo Failed to generate ChangeLog >&2 ); \ + else \ + echo A git checkout is required to generate ChangeLog >&2; \ + fi +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..221040d --- /dev/null +++ b/NEWS @@ -0,0 +1,2250 @@ +============== +Version 3.24.1 +============== + + Fixes + + * Fixed regression causing not working pin window (Marco Trevisan) + * Fixed Localedir (Alberts Muktupāvel) + +============== +Version 3.24.0 +============== + + Fixes + + * bump GTK+ required version to 3.22.0 + * Various refactoring to remove deprecated code (Alberts Muktupāvel) + * Add an option to disable the tasklist scroll event (Moritz Bruder) + * Add wrap-on-scroll option for WnckPager widget (Moritz Bruder) + * wnck-image-menu-item: fix memory leak (Alberts Muktupāvel) + + Translators + + * Baurzhan Muftakhidinov (kk) + * Inaki Larranaga Murgoitio (eu) + * Piotr Drąg (pl) + +============== +Version 3.20.1 +============== + + Fixes + + * tasklist: ignore size_allocate with invalid size (Alberts Muktupāvels) + * tasklist: queue resize on button not on its content (Alberts Muktupāvels) + * workspace-accessible: drop obsolete GTK_CHECK_VERSION (Alberts Muktupāvels) + * workspace-accessible: don't use deprecated atk_component_get_position + (Alberts Muktupāvels) + * tasklist: don't use deprecated GtkMisc (Alberts Muktupāvels) + * selector: don't use deprecated GtkMisc (Alberts Muktupāvels) + * wnckprop: don't use deprecated gdk_cursor_new (Alberts Muktupāvels) + * test-wnck: don't use deprecated gtk_tree_view_set_rules_hint (Alberts + Muktupāvels) + +============== +Version 3.20.0 +============== + + Fixes + + * xutils: add error trap in try_pixmap_and_mask (Alberts Muktupāvel) + * Window: ignore unhandled non-_NET_WM actions + * ActionMenu: Use gtk_label_set_text_with_mnemonic instead of + gtk_label_set_text (Andrea Azzarone) + * tasklist: set css name (Alberts Muktupāvel) + * selector: set css name (Alberts Muktupāvel) + * pager: set css name Alberts Muktupāvels + * configure.ac: redefine introspection dirs using proper prefixes + + Translators + + * Dušan Kazi (sk) + * Trần Ngọc Quân (vi) + +============== +Version 3.18.0 +============== + + Fixes + + * WnckWindow: Add a new 'type-changed' signal (Sebastian Geiger) + * don't use deprecated style properties (Alberts Muktupāvels) + * pager: use correct state flags (Alberts Muktupāvels) + * selector: avoid warnings from GtkStyleContext (Alberts Muktupāvels) + * tasklist: avoid warnings from GtkStyleContext (Alberts Muktupāvels) + * Back to dependency on gtk+-3.0 >= 3.10 + + Translators + + * Aurimas Černius (lt) + * Cédric Valmary (oc) + * Cheng-Chia Tseng (zh_TW) + * Jordi Mas (ca) + * Maria Mavridou (el) + * Mario Blättermann (de) + * Muhammet Kara (tr) + * Pedro Albuquerque (pt) + * Piotr Drąg (pl) + * Samir Ribic (bs) + +============== +Version 3.14.0 +============== + + Fixes + + * xutils: Support non-standard depths for icon pixmaps (Chris Wilson) + * xutils: Correctly link against libXrender (David King) + * pager: don't return invalid workspace rect (Alberts Muktupāvels) + * tasklist: fix missing icon in tasklist button (Alberts Muktupāvels) + * window-action-menu: don't use deprecated GtkImageMenuItem (Alberts Muktupāvels) + * tasklist: don't use deprecated GtkImageMenuItem (Alberts Muktupāvels) + + Translators + + * Anders Jonsson (sv) + * Saibal Ray (bn_IN) + * Timo Jyrinki (fi) + + +============= +Version 3.4.9 +============= + + Fixes + + * TaskList: remove new Startup Notification API + +============= +Version 3.4.8 +============= + + Features + + * Add support for _GTK_FRAME_EXTENTS (Rico Tzschichholz) + + Fixes + + * WindowActionMenu: unset window and stop async events on dispose (Marco Trevisan) + * TaskList: use new Startup Notification API (Stefan Sperling) + + Translators + + * Fran Diéguez (gl) + * GunChleoc (gd) + * Milo Casagrande (it) + * Noriko Mizumoto (ja) + * Rūdolfs Mazurs (lv) + * Wylmer Wang (zh_CN) + +============= +Version 3.4.7 +============= + + Features + + * Add wnck_set_default_icon_size and wnck_set_default_mini_icon_size functions + to allow clients to define the size of the icons to be used for windows + and applications. + +============= +Version 3.4.6 +============= + + Features + + * Add option to close windows with mouse middle click on button in tasklist + (Stefano Karapetsas) + * Add API to define task list orientation (Jean-Luc Porquet and Josselin Mouette) + + Fixes + + * ClassGroup: fix class signal signature (Marco Trevisan) + * Get rid of the deprecated code in TaskList, Selector and Pager (Marco Trevisan) + + Translators + + * Andika Triwidada (id) + * Ani Peter (ml) + * Aurimas Černius (lt) + * Balázs Úr (hu) + * Daniel Mustieles (es) + * Enrico Nicoletto (pt_BR) + * Joe Hansen (da) + * Krishnababu Krothapalli (te) + * ManojKumar Giri (or) + * Marek Černocký (cs) + * Matej Urbančič (sl) + * Nilamdyuti Goswami (as) + * Rajesh Ranjan (hi) + * Sandeep Sheshrao Shedmake (mr) + * Shankar Prasad (kn) + * Shantha kumar (ta) + * Sweta Kothari (gu) + * Theppitak Karoonboonyanan (th) + * Yuri Myasoedov (ru) + * Мирослав Николић (sr) (sr@latin + +============= +Version 3.4.5 +============= + + Features + + * Add getter and notifier for the Window role + * Emit signals when a window instance or group name (WM_CLASS) changes (Marco Trevisan) + + Fixes + + * Remove deprecated APIs for device grabbing (Marco Trevisan) + * Fix wnckprop hang, that made the system unusable (Marco Trevisan) + * Fix build with recent automake (Nuno Araujo) + * Use a little less power using g_timeout_add_seconds (B.Prathibha) + + Translators + + * ManojKumar Giri (or) + * Piotr Drąg (pl) + * Shankar Prasad (kn) + +============= +Version 3.4.4 +============= + + Translators + + * Runa Bhattacharjee (bn_IN) + * chandankumar (hi) + * Khoem Sokhem (km) + * Rūdolfs Mazurs (lv) + * Anish A (ml) + * Piotr Drąg (pl) + +============= +Version 3.4.3 +============= + + Fixes + + * Add deprecation attributes to deprecated functions (Javier Jardón) + + Misc + + * Require gtk+-3.0 >= 3.4.0 (Vincent) + + Translators + + * Nilamdyuti Goswami (as) + * Tom Tryfonidis (el) + * Sandeep Shedmake (mr) + * Kjartan Maraas (nb) + +============= +Version 3.4.2 +============= + + Fixes + + * Fix mouse wheel scrolling with new GTK+ (Christian Persch, Vincent) + + Misc + + * Add --enable-tools to enable/disable installation of tools (Vincent) + + Translators + + * Sílvia Miranda (ca) + * Sílvia Miranda (ca@valencia) + * Sweta Kothari (gu) + * Mitsuya Shibata (ja) + +============= +Version 3.4.0 +============= + + Translators + + * Nilamdyuti Goswami (as) + * Reşat SABIQ (crh) + * Kristjan SCHMIDT (eo) + * Mattias Põldaru (et) + * Gabor Kelemen (hu) + +============= +Version 3.3.5 +============= + + Features + + * Add wnck_shutdown() API (Martin Pitt, Vincent) + + Fixes + + * Don't ask for tasklist menus to be pushed in (Vincent) + + Translators + + * OKANO Takayoshi (ja) + * Kjartan Maraas (nb) + * Wouter Bolsterlee (nl) + +============= +Version 3.2.1 +============= + + Translators + + * Sílvia Miranda (ca@valencia) + * Мирослав Николић (sr) + * Miroslav Nikolić (sr@latin) + * Hari Krishna (te) + * Muhammet Kara (tr) + * Korostil Daniel (uk) + * Nguyễn Thái Ngọc Duy (vi) + +============= +Version 3.2.0 +============= + + Translators + + * Petr Kovar (cs) + * Aputsiaq Niels Janussen (da) + * Inaki Larranaga Murgoitio (eu) + * Tommi Vainikainen (fi) + * Gabor Kelemen (hu) + * Antonio Fernandes C. Neto (pt_BR) + +============== +Version 3.1.92 +============== + + Misc + + - Fix srcdir != builddir build (Colin Walters) + + Translators + + - Ihar Hrachyshka (be) + - Sílvia Miranda (ca) + - Bruce Cowan (en_GB) + - Arash Mousavi (fa) + - Milo Casagrande (it) + - Jiro Matsuzawa (ja) + - Changwoo Ryu (ko) + - Aurimas Černius (lt) + - Rūdofls Mazurs (lv) + - A S Alam (pa) + - Duarte Loreto (pt) + - Yuri Myasoedov (ru) + - Matej Urbančič (sl) + - Dr.T.Vasudevan (ta) + - Ray Wang (zh_CN) + - Chao-Hsiung Liao (zh_HK) + - Chao-Hsiung Liao (zh_TW) + +============== +Version 3.1.90 +============== + + Fixes + + - Added missing introspection annotations (Priit Laes) + + Misc + + - Link against libm (Vincent) + + Translators + + - Alexander Shopov (bg) + - Mario Blättermann (de) + - Jorge González (es) + - Vincent Untz (fr) + - Fran Diéguez (gl) + - Yaron Shahrabani (he) + - Andika Triwidada (id) + - Kjartan Maraas (nb) + - Piotr Drąg (pl) + - Daniel Nylander (sv) + - Theppitak Karoonboonyanan (th) + +============= +Version 3.1.5 +============= + + Features + + - Add API to get WM_CLASS group name & instance name of a WnckWindow: + wnck_window_get_class_group_name(), wnck_window_get_class_instance_name() + (Marco Trevisan) + - Change WnckClassGroup to talk about identifier instead of resource class. + This includes deprecating wnck_class_group_get_res_class() in favor of + wnck_class_group_get_id() (Vincent) + + Fixes + + - Fix tasklist taking some space when there is no window (Vincent) + - Remove unused variables (Vincent) + - Stop using several deprecated APIs (Vincent) + - Remove disabling of libgnomeui sounds (Vincent) + - Do not connect same signal handler twice (Vincent) + + Misc + + - Modernize build system (Vincent) + + Translators + + - Petr Kovar (cs) + +============= +Version 3.0.2 +============= + + Translators + + * Sahran (ug) + +============= +Version 3.0.0 +============= + + Translators + + - Sílvia Miranda (ca) + - Kristjan SCHMIDT (eo) + - Arash Mousavi (fa) + - Gheyret Kenji (ug) + +=============== +Version 2.91.92 +=============== + + Misc + + - Require GTK+ 3.0 (Carlos Garcia Campos) + + Translators + + - Sense Hofstede (fy) + - Adi Roiban (ro) + +=============== +Version 2.91.90 +=============== + + Fixes + + - Port widgets to GtkStyleContext (Carlos Garcia Campos) + - Improve geometry management of WnckPager (Vincent) + - Add switching workspace on scroll events to WnckPager (Vincent) + - Fix crash when fetching some icons (Vincent) + - Make most of the code not assume the display is the default one (Vincent) + - Code cleanups (Vincent) + + Misc + + - Add high-level documentation, with hints and examples (Vincent) + - Build fixes (Vincent) + + Translators + + - Gheyret Kenji (ug) + +============== +Version 2.91.6 +============== + +This is the first version of libwnck, ported to GTK+ 3. It should be +parallel-installable with the GTK+ 2 version of libwnck. Some API changes +might still happen until 3.0, but the libtool versioning won't change. +There might be some issues left after the GTK+ 3 port, so please report any +unusual behavior with the library. + + Major changes + + - Port to GTK+ 3 (Benjamin Otte, Christian Persch, David Ronis, Vincent) + - Enforce single include for libwnck (Vincent) + - Add macros to determine libwnck version at build time: WNCK_CHECK_VERSION, + WNCK_MAJOR_VERSION, WNCK_MINOR_VERSION, WNCK_MICRO_VERSION (Vincent) + + API Changes + + - Drop previously deprecated API: wnck_screen_get_workspace_index, + wnck_screen_get_workspace_neighbor, wnck_pager_set_screen, + wnck_tasklist_set_minimum_width, wnck_tasklist_get_minimum_width, + wnck_tasklist_set_minimum_height, wnck_tasklist_get_minimum_height, + wnck_tasklist_set_screen, wnck_gtk_window_set_dock_type, + wnck_create_window_action_menu (Vincent) + - Remove screen argument from wnck_pager_new and wnck_tasklist_new (Vincent) + + Fixes + + - Fix link errors for wnckprop (Diego Escalante Urrelo) + - Start removing assumptions where default display was used (Vincent) + - Add missing introspectio annotation (Vincent) + - Plug a leak (Lampersperger Andreas) + + Translators + + - Ivar Smolin (et) + - Vincent Untz (fr) + - Fran Diéguez (gl) + - Gheyret Kenji (ug) + +============== +Version 2.30.6 +============== + + Fixes + + - Adapt to GtkObject removal in GTK3 (Javier Jardón) + + Misc + + - Add a small test utility to make it easy to test urgency hints (Vincent) + + Translators + + - Sílvia Miranda (ca@valencia) + - Gheyret Kenji (ug) + +============== +Version 2.30.5 +============== + + Fixes + + - Fix pager with multiple rows, regression from 2.30.4 (Theppitak + Karoonboonyanan) + + Misc + + - Associate .gir with pkg-config file (Vincent) + - Rename --enable-deprecations configure option to --enable-deprecation-flags + (Vincent) + + Translators + + - Takeshi AIHANA (ja) + - Baurzhan Muftakhidinov (kk) + +============== +Version 2.30.4 +============== + + Fixes + + - Stop using gdk_display (Vincent) + + Misc + + - Update information in README and other files (Vincent) + + Translators + + - Dirgita (id) + +============== +Version 2.30.3 +============== + + Fixes + + - Additional GSeal-related fix (Federico Mena Quintero) + - Fix failure to build outside source tree (Theppitak Karoonboonyanan) + - Add introspection annotations (Tomeu Vizoso) + + Misc + + - gobject-introspection 0.6.14 is needed to build introspection data + (Theppitak Karoonboonyanan) + + Translators + + - Shankar Prasad (kn) + - Matej Urbančič (sl) + +============== +Version 2.30.2 +============== + + Fixes + + - Many GSeal-related fixes (Andre Klapper, Vincent) + - Do not ship gir files in the tarball (Yaakov Selkowitz) + + Translators + + - Denis (br) + - Sílvia Miranda (ca) + - Thomas Thurman (en@shaw) + - Iñaki Larrañaga Murgoitio (eu) + - Fran Diéguez (gl) + - Shankar Prasad (kn) + - Rudols Mazurs (lv) + - Kjartan Maraas (nb) + +============== +Version 2.30.0 +============== + + Fixes + + - Many GSeal-related fixes (Vincent) + - Use a GtkMenuSeparator with a label instead of a hack for workspace menu + items in selector (Vincent) + + Misc + + - Add configure summary (Vincent) + + Translators + + - Iñaki Larrañaga Murgoitio (eu) + - Ani Peter (ml) + +=============== +Version 2.29.92 +=============== + + Feature + + - Integrate gobject-introspection support (Vincent) + + Fixes + + - Build with latest GSeal'ed GTK+ (Vincent) + - Do not lose the pinned status when dragging a window in a tasklist + (Vincent) + - Use _NET_WM_WINDOW_TYPE_SPLASH instead of non-existing + _NET_WM_WINDOW_TYPE_SPLASHSCREEN (Vincent) + + Misc + + - Small documentation improvement for wnck_window_move_to_workspace() to + specify what happens to pinned windows (Vincent) + - Fix build when building out of source tree (Theppitak Karoonboonyanan) + + Translators + + - Tomasz Dominikowski (pl) + +=============== +Version 2.29.91 +=============== + + Fixes + + - Use single-include for atk (Vincent) + + Translators + + - Ivar Smolin (et) + - Fran Diéguez (gl) + - Matej Urbančič (sl) + +============== +Version 2.29.6 +============== + + Fixes + + - Fix generation of wnck-enum-types.c to not break bindings (Arun Raghavan) + + Misc + + - Modernize a bit the build system (Vincent) + + Translators + + - Khaled Hosny (ar) + - astur (ast) + - Sílvia Miranda (ca@valencia) + - Thomas Thurman (en@shaw) + - Andika Triwidada (id) + - Reinout van Schouwen (nl) + - Adi Roiban (ro) + +============== +Version 2.28.0 +============== + + Translators + + - Rajesh Ranjan (hi) + - Sangeeta Kumari (mai) + - Maxim Dziumanenko (uk) + +=============== +Version 2.27.92 +=============== + + Fixes + + - Always show icons in tasklist group menu (Marcus Carlson) + + Misc + + - Make startup-notification non-automagic (Gilles Dartiguelongue, Vincent) + + Translators + + - Khaled Hosny (ar) + - Alexander Nyakhaychyk (be) + - Maruf Ovee (bn) + - Jorge González (es) + - Ivar Smolin (et) + - Seán de Búrca (ga) + - Antón Méixome (gl) + - Kjartan Maraas (nb) + - Vladimir Melo (pt_BR) + - Милош Поповић (sr) + - Miloš Popović (sr@latin) + +============== +Version 2.27.5 +============== + + Features + + - New wnck-urgency-monitor utility to monitor windows with urgent hint + (Vincent) + + Misc + + - Use silent-rules with automake 1.11 (Vincent) + +============== +Version 2.27.4 +============== + + Fixes + + - Fix wnck_application_get_icon_is_fallback() to actually work (Vincent) + - Fix gtk-doc warning (Vincent) + - Code cleanup (Vincent) + - Always show icons in selector menu (Vincent) + + Misc + + - Use shave to improve build log readability (Vincent) + - Build system tweaks (Vincent) + + Translators + + - Runa Bhattacharjee (bn_IN) + - Ivar Smolin (et) + - Nabin Gautam (ne) + +2.26.1 +====== + + Translators + + - Khaled Hosny (ar) + - Reşat SABIQ (crh) + - Suso Baleato (gl) + - Shankar Prasad (kn) + - Ray Wang (zh_CN) + +2.26.0 +====== + + Translators + + - Amitakhya Phukan (as) + - Petr Kovar (cs) + - Kenneth Nielsen (da) + - Jennie Petoumenou (el) + - David Lodge (en_GB) + - Pauli Virtanen (fi) + - Ankit Patel (gu) + - Gil Osher (he) + - Luca Ferretti (it) + - Ani Peter (ml) + - Sandeep Shedmake (mr) + - wadim dziedzic (pl) + - Adi Roiban (ro) + - Nickolay V. Shmyrev (ru) + - I. Felix (ta) + - Krishna Babu K (te) + - Baris Cicek (tr) + +2.25.91 +======= + + Misc + + - Require glib 2.16.0 + + Translators + + - Yavor Doganov (bg) + - Runa Bhattacharjee (bn_IN) + - Sílvia Miranda (ca) + - Rhys Jones (cy) + - Andre Klapper (de) + - Dawa pemo (dz) + - Kostas Papadimas (el) + - David Lodge (en_GB) + - Guillaume Savaton (eo) + - Jorge González (es) + - Iñaki Larrañaga Murgoitio (eu) + - Pauli Virtanen (fi) + - Ankit Patel (gu) + - Rajesh Ranjan (hi) + - Gabor Kelemen (hu) + - Takeshi AIHANA (ja) + - Shankar Prasad (kn) + - Changwoo Ryu (ko) + - Žygimantas Beručka (lt) + - Arangel Angov (mk) + - Sanlig Badral (mn) + - Hasbullah Bin Pit (ms) + - Wouter Bolsterlee (nl) + - Manoj Kumar Giri (or) + - Amanpreet Singh Alam (pa) + - Vladimir Melo (pt_BR) + - Duarte Loreto (pt) + - Vasiliy Faronov (ru) + - Steve Murphy (rw) + - Pavol Šimo (sk) + - Слободан Д. Средојевић (sr) + - Theppitak Karoonboonyanan (th) + - Maxim Dziumanenko (uk) + - Clytie Siddall (vi) + - Deng Xiyue (zh_CN) + - Chao-Hsiung Liao (zh_HK) + - Chao-Hsiung Liao (zh_TW) + +2.25.5 +====== + + Fixes + + - Make libwnck compile with gnome-common DEPRECATED variables (Vincent) + - Use C_() instead of Q_() (Matthias Clasen) + + Translators + + - Andre Klapper (de) + - Jorge González (es) + - Mattias Põldaru (et) + - Claude Paroz (fr) + - Luca Ferretti (it) + - Vladimir Melo (pt_BR) + - Matej Urbančič (sl) + - Daniel Nylander (sv) + +2.25.3 +====== + + Fixes + + - Use single include for GTK+ (Pedro Fragoso) + - Fix compiler warning (Vincent) + +2.24.2 +====== + + Translators + + - Robert Millan (ca@valencia) + - Vladimir Melo (pt_BR) + +2.24.1 +====== + + Translators + + - Khaled Hosny (ar) + - Dawa pemo (dz) + - Claude Paroz (fr) + - Luca Ferretti (it) + - Vladimir Melo (pt_BR) + +2.24.0 +====== + + Translators + + - Khaled Hosny (ar) + - Ivar Smolin (et) + - Ankit Patel (gu) + - Launchpad Translations Administrators (hr) + - Gabor Kelemen (hu) + - Shankar Prasad (kn) + - Mugurel Tudor (ro) + - Слободан Д. Средојевић (sr) + - Theppitak Karoonboonyanan (th) + - Baris Cicek (tr) + - Chao-Hsiung Liao (zh_HK) + - Chao-Hsiung Liao (zh_TW) + +2.23.92 +======= + + Translators + + - Runa Bhattacharjee (bn_IN) + - Manoj Kumar Giri (or) + +2.23.91 +======= + + Misc + + - Update the default window icon (Baptiste Mille-Mathias) + + Translators + + - Khaled Hosny (ar) + +2.23.6 +====== + + Translators + + - Djihed Afifi (ar) + - Gabor Kelemen (hu) + - Vladimir Melo (pt_BR) + +2.23.4 +====== + + Fixes + + - Fix a bug where when the last window disappears, libwnck internals don't + get updated and you still have a window in the window list, eg. (Malebria) + + Misc + + - Require intltool 0.40.0 (Vincent) + + Translators + + - Djihed Afifi (ar) + - Yavor Doganov (bg) + +2.22.1 +====== + +Fixes + + - Fix crash caused by a race condition when pager is destroyed (Vincent) + [#517750] + - List windows that demands attention in the tasklist when they're in the + current workspace but not visible in the viewport (Vincent) [#520124] + - Unstick windows when moving them in another workspace (viewport mode), + else the windows are just outside the visible screen (Travis Watkins) + [#520704] + - Fix moving a window to an arbitrary workspace in viewport mode (Vincent) + [#520726] + + Translators + + - Kostas Papadimas (el) + - Eskild Hustvedt (nn) + +2.22.0 +====== + +Fixes + + - Properly translate --help output of wnckprop (Vincent) [#518070] + - Fix wnck_window_set_geometry() to work as intended, ie including + decorations (Mikkel Kamstrup Erlandsen, Elijah, Vincent) [#518606] + + Translators + + - Sankarshan Mukhopadhyay (bn_IN) + - Kenneth Nielsen (da) + - David Lodge (en_GB) + - Jorge González (es) + - Rajesh Ranjan (hi) + - Gabor Kelemen (hu) + - Žygimantas Beručka (lt) + - Vasiliy Faronov (ru) + - Dr.T.Vasudevan (ta) + - Maxim Dziumanenko (uk) + +2.21.92 +======= + +Fixes + + - Fix wnck_window_set_geometry() not working without a main loop + + Translators + + - Sílvia Miranda (ca) + - Pauli Virtanen (fi) + - Robert-André-Mauchin (fr) + - Ignacio Casal Quinteiro (gl) + - Gil Osher (he) + - Luca Ferretti (it) + - Changwoo Ryu (ko) + - Nabin Gautam (ne) + - Tino Meinen (nl) + - Jonh Wendell (pt_BR) + - Woodman Tuen (zh_HK) + - Woodman Tuen (zh_TW) + +2.21.91 +======= + +Misc + + - Require gtk-doc 1.9 (Vincent) [#511414] + + Translators + + - Djihed Afifi (ar) + - Takeshi AIHANA (ja) + - Arangel Angov (mk) + - sandeep shedmake (mr) + - Tomasz Dominikowski (pl) + - Duarte Loreto (pt) + - Pavol Šimo (sk) + - Theppitak Karoonboonyanan (th) + +2.21.90 +======= + +Fixes + + - Fix pager to correctly work in multiscreen environment (Vincent, with help + from David Sundqvist) + +2.21.5 +====== + + Translators + + - Djihed Afifi (ar) + - Ihar Hrachyshka (be@latin) + - Petr Kovar (cs) + - Andre Klapper (de) + - Jorge González (es) + - Ivar Smolin (et) + - Iñaki Larrañaga Murgoitio (eu) + - Seán de Búrca (ga) + - Santhosh Thottingal (ml) + - Kjartan Maraas (nb) + - Yannig Marchegay (Kokoyaya) (oc) + - Pavol Šimo (sk) + - Matej Urbančič (sl) + - Clytie Siddall (vi) + +2.21.2.1 +======== + + Fixes + + - Fix accidental ABI break in 2.21.2 (Vincent) + + Misc + + - Fix for X libraries detection to work with Xorg 6.8 (Vincent) + + Translators + + - Daniel Nylander (sv) + +2.21.2 +====== + + Features + - Make the window action menu a WnckActionMenu widget (Vincent) + + Fixes + + - Avoid crashing if the X Resource extension is not present (Matthias Clasen) + [#489087] + - Code cleanups (Roland Bär, Vincent) [#494077] + - Add context for some strings to help translators (Vincent) [#476512] + - Activate the window when the user drags and drops it quickly on itself + (Jan Niklas Hasse, Vincent) [#460403] + - Do not re-implement some functions GDK has (Vincent) + + Misc + + - API doc improvements (Vincent) [parts of this fix #477847] + - Clean up the configure script for X libraries detection (Vincent) [#332264] + - Be more complete in the requirements in the pkg-config files (Vincent) + + Translators + + - Anas Husseini (ar) + - Jorge González (es) + - Ivar Smolin (et) + - Robert-André-Mauchin (fr) + - Gil Osher (he) + - Matej Urbančič (sl) + - Daniel Nylander (sv) + +2.20.1 +====== + + Fixes + + - Fix icon of the active window not changing in the selector (Vincent) + - Fix crash when startup notification messages are not encoded in UTF-8 + (Vincent) [#476299] + + Translators + + - Jorge González (es) + - Changwoo Ryu (ko) + - Baris Cicek (tr) + +2.20.0 +====== + + The 2.19/2.20 releases have broken API and ABI compatibility with 2.18 + releases. Read the various entries for 2.19.x releases to learn more about the + breaks. + + Translators + + - Khaled Hosny (ar) + - Runa Bhattacharjee (bn_IN) + - Sílvia Miranda (ca) + - Robert-André-Mauchin (fr) + - Gabor Kelemen (hu) + - Luca Ferretti (it) + - Žygimantas Beručka (lt) + - Duarte Loreto (pt) + - Nickolay V. Shmyrev (ru) + - Maxim Dziumanenko (uk) + +2.19.92 +======= + + Fixes + + - Add translator comments for wnckprop (Andre Klapper) [#468320] + + Translators + + - Ask Hjorth Larsen (da) + - Andre Klapper (de) + - Kostas Papadimas (el) + - Jovan Naumovski (mk) + - Kjartan Maraas (nb) + - Og Maciel (pt_BR) + - Clytie Siddall (vi) + +2.19.90 +======= + + Fixes + + - Remove weak pointers on fields in task structure before freeing + task block (Ray Strode) [#139080] + + Translators + + - Ihar Hrachyshka (be@latin) + - Takeshi Aihana (ja) + - Inaki Larranaga Murgoitio (eu) + - Ilkka Tuohela (fi) + - Ankit Patel (gu) + - I. Felix (ta) + - Žygimantas Beručka (lt) + +2.19.6 +====== + + Fixes + + - Make the window action menu work with viewport (Vincent) [#352383] + - Correctly draw workspaces with viewport in the pager (Vincent) + - Fix typo in a string of wnckprop (Theppitak Karoonboonyanan) + + Misc + + - Various API documentation improvements (Vincent) + + Translators + + - Alexander Shopov (bg) + - Jorge González (es) + - Pauli Virtanen (fi) + - Kjartan Maraas (nb) + - Vincent van Adrighem (nl) + - Daniel Nylander (sv) + - Theppitak Karoonboonyanan (th) + - Wang Jian (zh_CN) + +2.19.5 +====== + + Features + + - Install wnckprop utility (Vincent) + - Add tooltips for workspaces in the pager (Vincent) [#125644] + - New wnck_screen_get_workspaces() API (Vincent) + - New wnck_workspace_get_layout_row(), wnck_workspace_get_layout_column() and + wnck_workspace_get_neighbor() API, to get layout information about a + workspace (Vincent) + - New wnck_workspace_get_screen() API (Vincent) + - New wnck_window_is_below(), wnck_window_make_below() and + wnck_window_unmake_below() API (Vincent) [#453982] + + Deprecations + + - Deprecate wnck_screen_get_workspace_index(). wnck_workspace_get_number() + should be used (Vincent) + - Deprecate wnck_screen_calc_workspace_layout(), + wnck_screen_free_workspace_layout() and WnckWorkspaceLayout (Vincent) + - Deprecate wnck_screen_get_workspace_neighbor(). + wnck_workspace_get_neighbor() should be used (Vincent) + - Deprecate wnck_tasklist_set_minimum_width(), + wnck_tasklist_get_minimum_width(), wnck_tasklist_set_minimum_height(), + wnck_tasklist_get_minimum_height(). They are useless with the new sizing + algorithm (Vincent) + + Fixes + + - Improve a bit drawing of the pager (Vincent) + - Fix logic when cleaning up after dragging a window from the pager (Vincent) + - Use the last allocation of the tasklist as a basis for the fake allocation + used to compute the size hints. This gives better results. (Joe Shaw, + Vincent) + - Rationalize the using of icon names/names in the tasklist and the pager + (Vincent) + - Do not put state indicators in the tooltip text of tasklist buttons + (Vincent) + - Fix compilation of wnckprop (Vincent) [#449186] + - Import minor fixes from the XFCE fork (small leak, and safety checks) + (Vincent) + - Code cleanups (Vincent) + - Use g_type_class_add_private() everywhere (Vincent) + - Use GSlice when it makes sense (Vincent) + - Probable fix to show windows needing attention not shown in the viewport + (Vincent) + - Make wnckprop able to change properties of windows and screens (Vincent) + - Make wnckprop translatable (Vincent) + - Redraw a workspace in the pager when the state of a window changes and is + relevant (Vincent) + - Stop the glowing effect in the tasklist for urgent windows after a while + (Vincent) [#327870] + - Add new fade-max-loops to control the number of loops before the glowing + effect stops. Makes it possible to nearly disable the effect. (Vincent) + [#356452] + - Don't draw dots for group buttons in the tasklist, but use gtk_paint_tab() + (Vincent) [#139523] + - Make the glowing effect in the tasklist use cairo. This also makes it work + with RGBA. (Ryan Lortie) [#439417] + - Makes it possible to drag a window from a grouped task menu of the tasklist + (Vincent) + - Never group together in the tasklist windows without a class (Vincent) + [#165075] + - Add new mode to wnckprop to interact with a workspace (Vincent) + - Add new modes to wnckprop to interact with a class group or an application + (Vincent) + - Improve wnckprop command line arguments (Vincent) + - Add some XSync calls where needed in libwnck for wnckprop to work (Vincent) + - Make wnckprop use the real X server timestamp when needed (Vincent) + - Fix size of buttons in tasklist changing with the text. This should be an + important usability improvement. (Vincent) [#310809] + - Fix image of tasklist buttons floating outside of the buttons when buttons + are small (Vincent) [#308552] + - Update the window action menu when a workspace is created/destroyed, and + when the window has changed workspace (Vincent) + + Misc + + - Improve API documentation (Vincent) + - Add a --transparent command line for test-tasklist (Ryan Lortie) + + Translators + + - Jorge González (es) + - Luca Ferretti (it) + - Takeshi AIHANA (ja) + - Kjartan Maraas (nb) + - Danishka Navin (si) + - Daniel Nylander (sv) + - Clytie Siddall (vi) + +2.19.4 +====== + + Features + + - Show workspace names in the window selector (Vincent) [#354667] + - Add support for _NET_FRAME_EXTENTS. + wnck_window_get_client_window_geometry() is a new API and + wnck_window_get_geometry() now returns the geometry including the window + manager decorations (Vincent) [#351055] + - Add wnck_screen_get_number() API (Vincent) [#169590] + - Add wnck_screen_get_window_manager_name() API and window-manager-changed + signal (Vincent) [#448043] + + Deprecations + + - Deprecate wnck_gtk_window_set_dock_type() (Vincent) + - Deprecate wnck_pager_set_screen() (Vincent) + - Deprecate wnck_tasklist_set_screen() (Vincent) + - Deprecate the screen argument of wnck_pager_new() and of + wnck_tasklist_new() (Vincent) + + Fixes + + - Code cleanups (Vincent) + - Make wnck_screen_net_wm_supports() work on all screens (Vincent) + - Do not forget about the "Make below" action for the default possible + actions (Vincent) + - Rework selection ownership for the desktop layout: do not steal it and + release it (Vincent) + - Do not change the layout shown in the pager if the the pager couldn't + update the layout hint (Vincent) [#445686] + - Make the pager use the real layout of the screen when it cannot set the + layout (Vincent) + - Use g_timeout_add_seconds() when possible (Vincent) + - Migrate to new GtkTooltip API (Vincent) + - Add some safety guards to the public API (Vincent) + - Improve position of the drag icon when dragging a window (Vincent) + [#446531] + - Make wnck_pid_read_resource_usage() work for more X clients (Vincent) + [#150153] + - Fix a crash happening sometimes when a tasklist is destroyed (Vincent) + - Be more solid against invalid values for _NET_NUMBER_OF_DESKTOPS (Vincent) + - Do not skip taskbar for transient windows if the window they're transient + for don't exist (Vincent) + - Fix a crash when dragging a window to somewhere like another + workspace/viewport (Vincent) [#420713] + - Make WnckSelector and WnckTasklist correctly work from bindings (Vincent) + - Fix crash on multihead setups introduced in 2.19.3 (Vincent) + - Fix potential invalidity of the previously active window when there are + multiple screens (Vincent) + + Misc + + - Totally rework API documentation (Vincent) + - New wnckprop utility, not installed by default (Vincent) + - Require glib 2.13.0 (Vincent) + - Require GTK+ 2.11.3 (Vincent) + + Translators + + - Mindu Dorji (dz) + - Jorge González (es) + - Ivar Smolin (et) + - Wang Jian (zh_CN) + +2.19.3.1 +======== + + This release breaks API compatibility again (it contains changes that should + have been in 2.19.3). + + Features + + - The active-window-changed and active-workspace-changed signals for + WnckScreen now provides the previously active window/workspace (Vincent) + + Fixes + + - Add some padding in classes to make it possible to add new signals without + breaking ABI in the future (Vincent) + - Make the action menu work again on tasklist buttons (Vincent) + + Misc + + - Remove old files from svn (Vincent) + +2.19.3 +====== + + This release breaks API compatibility. + + Features + + - Show workspace names in the window selector (Vincent) [#354667] + - Make it possible to activate the next window in a class group by clicking + with the middle button on the group in the tasklist (Vincent) [#342707] + - Add Maximize all and Unmaximize all to the context menu of group buttons in + the tasklist (Vincent) [#155875] + + Fixes + + - Improve fallback title for windows and applications (Vincent) + - Fix vertical pager in RTL environments (Vincent) [#431461] + - Move the Close mneu item at the bottom of the action menu (Vincent) + [#104026] + - Change API for wnck_selector_new(): we don't need the screen argument + (Vincent) [#164474] + - Code cleanups, especially in the selector (Vincent) + - Put pinned windows in the current workspace in the selector (Vincent) + - Fix selector when the last window disappears while the selector is opened, + and handle other similar issues (Vincent) [#156918] + - Add missing signals for WnckScreen (Vincent) + - Sort the windows in the window selector (Vincent) + - Fix potential crash when a window disappears from the tasklist and its + context menu was opened (Vincent) + - Remove all reference to _NET_WM_WINDOW_TYPE_MODAL_DIALOG since it's not in + the EWMH spec. This breaks API. (Vincent) [#124332] + - Make sure the size hints of the tasklist are sane when there's no window in + always group mode (Vincent) [#440625] + + Misc + + - Add useful command-line options for test programs (Vincent) + - Require libstartup-notification-1.0 in the pkg-config file when startup + notification support is enabled (Vincent) + + Translators + + - Ihar Hrachyshka (be@latin) + - David Lodge (en_GB) + - Jorge González (es) + - Ivar Smolin (et) + - Daniel Nylander (sv) + - Theppitak Karoonboonyanan (th) + +2.19.2 +====== + + Features + + - Make it possible to drag a window from the window selector (Vincent) + [#354667] + - Make it possible to reorder tasklist buttons with drag and drop + (Nickolay V. Shmyrev) [#302398] + + Fixes + + - Add small missing bit forgotten for move/resize window API (Elijah) + - Plug leak (Matthias Clasen) [#428056] + - Check whether window manager supports _NET_WM_ACTION_ABOVE and + _NET_WM_ACTION_BELOW instead of guessing whether these are supported + (Elijah) [#352383, #115247] + - Fix crash on startup in the pager (Kim Woelders) [#403377] + - Fix crash when dragging small windows in the pager (Vincent) [#428280] + - Fix compilation warnings (Bernard Leak, Vincent) [#431175] + - Update action menu to be the same as the metacity one (Bruno Boaventura, + Vincent) [#376522] + - Fix crash when a menu is opening for a window being destroyed (Vincent) + [#410133] + - Fix crash happening in some cases on drop on the pager (Vincent) [#415675] + - Don't reset the drag icon to the default one when dragging and the dragged + window is destroyed (Vincent) [#414967] + - Don't use deprecated functions (Vincent) + + Translators + + - Khaled Hosny (ar) + - Ihar Hrachyshka (be@latin) + - Jorge González (es) + - Ignacio Casal Quinteiro (gl) + - Kjartan Maraas (nb) + - Daniel Nylander (sv) + +2.18.0 +====== + + Translators + + - Alaksandar Navicki (be@latin) + - Žygimantas Beručka (lt) + - Og Maciel (pt_BR) + - Maxim Dziumanenko (uk) + +2.17.92 +======= + + Fixes + + - Don't accept to set less than one row in the pager (Vincent) + - Improvements to the test programs (Vincent) + - Improve size of drag and drop icons for windows (Vincent) + - Fix mouse scroll on tasklist in RTL environments (Vincent) + + Misc + + - Distribute MAINTAINERS (Kjartan Maraas) + + Translators + + - Gil Osher (he) + +2.17.91 +======= + + Fixes + + - Remove warnings (Kjartan Maraas) + - Code cleanups (Christian Persch) + - Make tasklist RTL aware (Vincent) + - Make pager RTL aware (Vincent) + + Translators + + - Ihar Hrachyshka (be) + - Jordi Mallach (ca) + - Og Maciel (pt_BR) + +2.16.2 +====== + + Fixes + + - Change to the workspace of a window before activating it on dragging + (Sven Herzberg) [#359874] + + Translators + + - Khaled Hosny (ar) + - Francisco Javier F. Serrador (es) + - Christophe Merlet (RedFox) (fr) + - Takeshi AIHANA (ja) + - GNOME PL Team (pl) + - Duarte Loreto (pt) + +2.16.1 +====== + + Fixes + + - Fix critical warning and leak (Benjamin Berg) [#354268] + - Avoid sending spurious icon geometry updates (Ryan Lortie) [#355523] + - Fix leaks (Benjamin Berg) [#354830] + + Misc + + - Require GTK+ 2.8.0 (Vincent) [#348189] + + Translators + + - Vladimir Petkov (bg) + - Jordi Mallach (ca) + - David Lodge (en_GB) + - Francisco Javier F. Serrador (es) + - Pauli Virtanen (fi) + - Ankit Patel (gu) + - Rajesh Ranjan (hi) + - Mohammad DAMT (id) + - Ani Peter (ml) + - Wouter Bolsterlee (nl) + - Matic Žgur (sl) + - Daniel Nylander (sv) + - Felix (ta) + - Sree Ganesh (te) + - Woodman Tuen (zh_HK) + - Woodman Tuen (zh_TW) + +2.16.0 +====== + + Translators + + - Khandakar Mujahidul Islam (bn) + +2.15.92 +======= + + Fixes + + - Fix crash when tasklist is destroyed (Vincent) + + Misc + + - Update delete icon for the context menu (Baptiste Mille-Mathias) + + Translators + + - Ivar Smolin (et) + - Matic Žgur (sl) + +2.15.91 +======= + + Fixes + + - Changed the glowing code to have less and saner style properties + (Benjamin Berg) [#350138] + + Translators + + - Runa Bhattacharjee (bn_IN) + - Ani Peter (ml) + +2.15.90 +======= + + Features + + - Add move/resize window API (Magnus Therning) + + Fixes + + - Correctly set relief for group buttons in the tasklist (Benjamin Otte) + +2.15.4 +====== + + Fixes + + - Make windows that go to the bottom occupy the last pixel of the pager + (Benjamin Otte) + + Translators + + - Mahay Alam Khan (bn_IN) + - Rahul Bhalerao (mr) + +2.15.3 +====== + + Fixes + + - restart activation timeout when the mouse moves to a different + workspace (Benjamin) + - new methods to test if the names returned by wnck_window_get_name + and wnck_window_get_icon_name are real or just FALLBACK_NAME (Dan) + [#342577] + + Misc + + - don't translate %s (Vincent) [#339069] + + Translations + + - Guillaume Savaton (eo) + +2.15.2 +====== + + Features + + - Improve glowing effect in tasklist and make it themeable (Benjamin Berg) + [#325176] + - Use cairo in the pager (Benjamin Otte) [#339293] + - Improve drag and drop in the pager (Nickolay V. Shmyrev, Benjamin Otte) + [#96675, #339293] + - Improve look of the pager (Benjamin Otte) [#339293] + - Add dragging of windows from the tasklist (Nickolay V. Shmyrev) [#96675] + + Fixes + + - Fix crash when a X resource doesn't exist anymore (Vincent) [#336823] + - Don't change workspace when releasing the button on another workspace + (Vincent) [#110510] + + Misc + + - Use po/LINGUAS (Brian Pepple) [#337953] + - Depends on intltool 0.35.0 + + Translations + + - Mindu Dorji (dz) + - Baptiste Mille-Mathias (fr) + - GNOME PL Team (pl) + +2.14.1 +====== + + Fixes + + - Fix leaks (Dan Winship) [#334137] + - Fix minimization of "always on visible desktop" windows with the tasklist + (Vincent) [#335316] + - Fix transient cycles causing infinite loops (Dan Winship, Elijah) [#332493] + - Immediately show notification for demands-attent/urgent windows on other + workspaces in the tasklist (Leszek Matok) [#336142] + + Translations + + - Ales Nyakhaychyk (be) + - Gora Mohanty (or) + +2.14.0 +====== + + Fixes + + - Don't minimize the window when it's on another desktop and it was the last + active window (Vincent) [#331661] + - Fix C89 compliance (Jens Granseuer) [#332866] + + Translations + + - Rhys Jones (cy) + - Hendrik Richter (de) + - Rajesh Ranjan (hi) + - Raivis Dejus (lv) + - Mugurel Tudor (ro) + - Laurent Dhima (sq) + - Daniel Nylander (sv) + - Maxim Dziumanenko (uk) + +2.13.92 +======= + + Fixes + + - Fix window disappearing in workspace switcher after drag and drop (Vincent) + [#317373] + - Fix corrupted drawing of windows (Vincent) [#155502] + - Fix critical warning with action menu of pinned windows (Vincent) + + Translations + + - Lasse Bang Mikkelsen (da) + - Kostas Papadimas (el) + - Iñaki Larrañaga (eu) + - Gabor Kelemen (hu) + - Aiet Kolkhi (ka) + - Žygimantas Beručka (lt) + - Duarte Loreto (pt) + - Leonid Kanter (ru) + - Woodman Tuen (zh_HK) + - Woodman Tuen (zh_TW) + +2.13.91 +======= + + Misc + + - Automate the creation of some files (Torsten Schoenfeld) + - Don't redefine the _ macro for translation (Vincent) [#328621] + - Make the selector widget translations work again (Vincent) [#323181] + + Translations + + - Vladimir Petkov (bg) + - Miloslav Trmac (cs) + - Priit Laes (et) + - Luca Ferretti (it) + - Takeshi AIHANA (ja) + - Слободан Д. Средојевић (sr) + +2.13.90 +======= + + Fixes + + - Fix crash on workspace activation (Elijah, Bart Vanbrabant) + [#327435] + - Include demands-attention/urgent windows unconditionally in + tasklist; this should help users not miss important windows on + other workspaces (Elijah) [#305979] + - Synchronize the right-click-menu with that of Metacity's (Srirama + Sharma, Leena Gunda, Christian Neumair) [#135710] + - Escape window titles used in pango markup, avoids some crashes too + (Vincent Noel, jylefort FreeBSD org) [#306289] + - Correctly catch and handle demands-attention/urgent state changes + for transients of windows in the tasklist (Elijah) [#317541] + - Make the pager Fitts's law compliant when shadow type is none + (Vincent) [#304248] + - Avoid a compiler warning (Kjartan) + + Translations + + - Jordi Mallach (ca) + - Adam Weinberger (en_CA) + - Lucas Vieites (es) + - Pauli Virtanen (fi) + - Ignacio Casal Quinteiro (gl) + - Ankit Patel (gu) + - Kjartan Maraas (nb) + - Tino Meinen (nl) + - Kjartan Maraas (no) + - Evandro Fernandes Giovanini (pt_BR) + - Theppitak Karoonboonyanan (th) + - Clytie Siddall (vi) + - Wang Jian (zh_CN) + +2.13.5 +====== + + Fixes + + - Correctly specify the source indication (Elijah) + - Doc generation fixes (Thomas Vander Stichele) + + Translations + + - Abel Cheung (zh_HK) + +2.13.4 +====== + + Features + + - Sort window in a group alphabetically (Xavier Claessens, Vincent) + - Change active window when scrolling on the selector (Nigel Tao) + + Fixes + + - Remove critical warning (Vincent) + - Use virtual desktop size when computing size of pager (Loic Minier, Vincent) + +2.13.3 +======= + + Features + + - Add scrolling support to the tasklist (Xavier Claessens) + + Misc + + - Remove old hack (Vincent) + + Translators + + - Ivar Smolin (et) + - Kjartan Maraas (nb) + - Kjartan Maraas (nn) + - Kjartan Maraas (no) + +2.13.1 +======= + + Fixes + + - Minor code cleanup (Elijah) + + Translators + + - Erdal Ronahi (ku) + - Ilyas Bakirov (ky) + +2.12.1 +======= + + Features + + - add a test-selector program for testing. It doesn't get installed. + (Denis Jacquerye) [#165269] + + Fixes + + - Use intltool & various other build enhanements (Rodney Dawes, Vincent) + [#317190] + - Detect windows that are removed from the skip_taskbar state (Jochen Baier) + [#163293] + + Translators + + - Mahay Alam Khan (bn) + - Iñaki Larrañaga Murgoitio (eu) + +2.12.0 +======= + + Translators + + - Bryn Salisbury (cy) + +2.11.92 +======= + + Translators + + - Mişu Moldovan (ro) + - Maxim Dziumanenko (uk) + +2.11.91 +======= + + Fixes + + - Have window list tooltips display WM_NAME instead of WM_ICON_NAME + (Mariano Suarez-Alvarez) [#124463] + - Zero out unused fields in ClientMessages, as required by the EWMH + spec (Gregory Merchan) [#135024] + - Fix an activation/minimization inconsistency (Elijah Newren) + - Correctly determine the active task when dealing with transients + (Xavier Claessens) [#310381] + - Clean up a number of warnings (Philipp Thomas, Benoit Dejean) + [#140175, #310829] + - Fix builds that don't disable docs, get make distcheck to work + (Matthias Clasen) [#302231] + - Add wnck_window_set_window_type() function (Olivier Andrieu) + [#133306] + - Add API for allowing the button relief to be set to + GTK_RELIEF_NONE for transparent panels (Ryan Lortie) [#167932] + - Fix workspace switching behavior (revert the stuff related to the + behavioral change from bug 161361 made in the 2.10 cycle -- Elijah + Newren) + - Prevent pager from flickering when moving windows between + workspaces (Christian Neumair) [#167745] + + Translators + + - Christophe Merlet (RedFox) (fr) + - Jaydeep Bhusal (ne) + +2.11.4 +====== + + Features + + - Add support for the Urgent hint (Elijah) + + Fixes + + - Show the mini_icon instead of the regular icon for the selector + (Vincent Noel) + + Translators + + - Takeshi AIHANA (ja) + - Abel Cheung (zh_TW) + +2.11.3 +====== + + Features + + - Make windows that demand attention more noticeable by glowing their + tasklist buttons (Ray Strode) + + Fixes + + - fix possible leak (Benoît Dejean) + - determine a group leader when the previous one gets removed (Jaap Haitsma) + + Translators + + - Ignacio Casal Quinteiro (gl) + +2.11.1 +====== + + Translators + + - Adam Weinberger (en_CA) + - Ivar Smolin (et) + - Steve Murphy (rw) + - Ivan Noris (sk) + - Baris Cicek (tr) + - Canonical Ltd (xh) + +2.10.0 +====== + + Translators + + - Jordi Mallach (ca) + - Gabor Kelemen (hu) + - Mişu Moldovan (ro) + - Александар Урошевић (sr) + - Abel Cheung (zh_TW) + +2.9.92.1 +======== + + Misc + - COPYING was wrongly updated during 2.9.92 release. This is now fixed. + +2.9.92 +====== + + Fixes + + - Fix warnings (Kjartan Maraas) + - Remove hack needed because of a metacity bug (Elijah) + - Check for whether a window or one of its transients has the demands + attention hint set (Elijah) + - Handle the changes to _NET_ACTIVE_WINDOW (Elijah) + - API change to add a timestamp to _NET_CURRENT_DESKTOP message (Elijah) + - Plug leak (Vincent) + - Fix tasklist button not requesting a reasonable size (Vincent) + + Translators + + - Jordi Mallach (ca) + - Nikos Charonitakis (el) + - Benoît Dejean (fr) + - Ankit Patel (gu) + - Luca Ferretti (it) + - Takeshi AIHANA (ja) + - Changwoo Ryu (ko) + - Tino Meinen (nl) + - GNOME PL Team (pl) + - Evandro Fernandes Giovanini (pt_BR) + - Duarte Loreto (pt) + - Leonid Kanter (ru) + - Laurent Dhima (sq) + - Paisa Seeluangsawat (th) + - Maxim Dziumanenko (uk) + +2.9.91 +====== + + Features + + - New WnckSelector widget, using code from gnome-panel (Vincent Noel) + + Fixes + + - Correct misleading and inaccurate wording (Elijah) + - Make the tasklist window menu popup appear near the mouse pointer + (Vincent Noel) + - Fix warnings in WnckSelector (Vincent) + + Misc + + - Add MAINTAINERS & HACKING files (Elijah) + + Translators + + - Vladimir Petkov (bg) + - Miloslav Trmac (cs) + - Ole Laursen (da) + - Frank Arnold (de) + - Adam Weinberger (en_CA) + - David Lodge (en_GB) + - Lucas Vieites (es) + - Priit Laes (et) + - Pauli Virtanen (fi) + - Takeshi AIHANA (ja) + - Changwoo Ryu (ko) + - Žygimantas Beručka (lt) + - Kjartan Maraas (nb) + - Kjartan Maraas (no) + - Duarte Loreto (pt) + - Christian Rose (sv) + +2.9.90 +====== + + Fixes + + - Don't check the monitor-change if there's only one monitor (Juerg Billeter) + - Show "close all" and "(un)minimize all" options in the right click menu for + grouped windows (Jaap Haitsma) + - Make the task order in the tasklist intuitive (Elijah Newren) + + Translators + + - Vladimir Petkov (bg) + - Miloslav Trmac (cs) + - Frank Arnold (de) + - Adam Weinberger (en_CA) + - Francisco Javier F. Serrador (es) + - Kjartan Maraas (nb) + - Åsmund Skjæveland (nn) + - Kjartan Maraas (no) + - Mişu Moldovan (ro) + - Christian Rose (sv) + - Wang Jian (zh_CN) + +2.9.4 +===== + + Fixes + + - Implemented switching workspaces when doing a DnD operation + (Carlos Garnacho Parro, Fernando Villacis Postigo) + - Allow minimizing an app via tasklist even when it has a transient + (Elijah Newren) + - Include pinned windows only for the active workspace (Elijah Newren) + + Translators + + - Rajeev Shrestha (ne) + +2.9.3 +===== + + Fixes + + - Ellipsize labels in tasklist (Benjamin Kahn) + - Use right icon size in tasklist (Benjamin Kahn) + - Add a default icon for windows without icon in tasklist (Benjamin Kahn) + - Fix leak (Benoît Dejean) + - Do not show windows from all screen when the tasklist is first created (Juerg Billeter) + - Show all windows in tasklist with xinerama if there's only one tasklist (Juerg Billeter) + - Increase padding between text and icon in the tasklist (Benjamin Kahn) + - Code cleanups (Mark McLoughlin) + + Misc + + - Add a rationales.txt file (Elijah Newren) + + Translators + + - Vladimir Petkov (bg) + +2.8.1 +=== + + Fixes + + - Only highlight sticky windows on the current workspace (Elijah Newren) + + Translators + + - Aiet Kolkhi (ka) + +2.8.0.1 +=== + + Fixes + + - Don't activate windows when clicking on the pager (Elijah Newren) + - Only show windows which are on the same monitor as the tasklist (Juerg Billeter) + - Add missing prototype - wnck_window_set_fullscreen() (Ross Burton) + - Fix runtime warning spew (Mark) + + Translators + + - Meelad Zakaria (fa) + +2.8.0 +=== + + Translators + + - Adam Weinberger (en_CA) + +2.7.92 +=== + + Fixes + + - Setup gtk-doc to pull out API documentation (J.H.M. Dassen (Ray)) + + Translators + + - Laszlo Dvornik (hu) + - Kjartan Maraas (nb) + - Laurent Dhima (sq) + +2.7.91 +=== + + Fixes + + - Fix issue with AtkComponent co-ordinates (Arvind Samptur) + - Fix window minimization vs. activation for mouse focus (Elijah Newren) + - Resolve some no-focus-on-map issues (Elijah Newren) + - Regenerate stale built sources (Torsten Schoenfeld) + + Translators + + - Kemal Sanjta (bs) + - Pauli Virtanen (fi) + - Amanpreet Singh Alam (pa) + +2.7.90 +=== + + Fixes + + - Add support for the _NET_WM_STATE_DEMANDS_ATTENTION hint (Rob Adams) + - Display shaded windows as "= =" instead of "[ ]" (James M. Cape) + - Desensitize "Move To Workspace" items for sticky windows (Arvind Samptur) + + Translators + + - Vladimir Petkov (bg) + - Laurent Dhima (sq) + +2.6.2.1 +=== + + Fixes + + - Activate window in workspace switcher only if its on + the current workspace (Elijah Newren) + - Use timestamp with _NET_CLOSE_WINDOW (Anders Carlsson) + + Translators + + - John C Barstow (mi) + - Laurent Dhima (sq) + +2.6.2 +=== + + Fixes + + - Don't show multi-workspace related menu items if there is only + a single workspace (Johan Persson) + + Translators + + - Vladimir Petkov (bg) + - Gil Osher (he) + - Kjartan Maraas (no) + - Mişu Moldovan (ro) + - Ivan Noris (sk) + +2.6.1 +=== + + Fixes + + - Fix icon-reading crash when using enlightenment (Neil Muller) + - AIX portability fixes (Kjartan Maraas) + - Don't attempt to center the workspace on the mouse click (Kim Woelders) + + Translators + + - Iñaki Larrañaga Murgoitio (eu) + - Guntupalli Karunakar (gu) + - Mohammad DAMT (id) + - Samúel Jón Gunnarsson (is) + - Baris Cicek (tr) + +2.5.90 +=== + +Thanks to Laszlo Peter, Leena Gunda Padraig O'Briain for fixes in +this release + + - allow building against an uninstalled libwnck build + - add "Move to Workspace" menu + - fix crash with updated allowed actions hint + +=== +2.4.0 +=== + +Thanks to Arvind Samptur, Mariano Suarez-Alvarez, Kim Woelders for +fixes in this release. + + - fix workspace name property handling + - fix updating of window/icon names + - fixes to viewport handling + - lots of new translations + +2.3.1 +=== + +Thanks to Hidetoshi Tajima, Ross Burton, Masahiro Sakai, Kim Woelders, +Arvind Samptur, Matt Wilson for fixes in this release. + +- put -lX11 in link flags +- add API to manipulate window fullscreen state +- use an icon from one of the windows in a group, rather than + the "white piece of paper" icon, if a group doesn't set an icon +- fixes for Cygwin compilation +- add support for viewports in window list and workspace switcher +- fix multihead glitches +- set desktop layout properly on 64-bit platforms +- new/updated translations + +2.3.0 +=== + +- fixed fitt's law for window list applet (Mark McLoughlin) +- incorporated fixes from stable branch + +2.1.90 +=== + +- Fixed a big-ass memleak (Arjan van de Ven) +- Added Czech translations +- Updated README for first time ever diff --git a/README b/README new file mode 100644 index 0000000..b51b7a1 --- /dev/null +++ b/README @@ -0,0 +1,48 @@ +libwnck +======= + +libwnck is Window Navigator Construction Kit, i.e. a library to use +for writing pagers and taskslists and stuff. + +libwnck is not supported in the devel platform, which means OS vendors +won't guarantee the API/ABI long-term, but authors of open source apps +should feel free to use libwnck as users can always recompile against +a new version. The API/ABI has historically changed very little: we are +not changing it gratuitously or without soname increments. + +Documentation for the API is available with gtk-doc. The code +implementing the tasklist or pager widgets (tasklist.c and pager.c) can +also be used as sample code. + +You may download updates to the package from: + + http://download.gnome.org/sources/libwnck/ + +To discuss libwnck, you may use the desktop-devel-list mailing list: + + http://mail.gnome.org/mailman/listinfo/desktop-devel-list + + +Installation +============ + +See the file 'INSTALL'. If you are not using a released version of +libwnck (for example, if you checked out the code from git), you first +need to run './autogen.sh'. + + +How to report bugs +================== + +Bugs should be reported to the GNOME bug tracking system: + + https://bugzilla.gnome.org/ (product libwnck) + +You will need to create an account for yourself. + +Please read the following page on how to prepare a useful bug report: + + https://bugzilla.gnome.org/page.cgi?id=bug-writing.html + +Please read the HACKING file for information on where to send changes or +bugfixes for this package. diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..86c1b94 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1181 @@ +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_append_compile_flags.m4]) +m4_include([m4/ax_append_flag.m4]) +m4_include([m4/ax_append_link_flags.m4]) +m4_include([m4/ax_check_compile_flag.m4]) +m4_include([m4/ax_check_enable_debug.m4]) +m4_include([m4/ax_check_link_flag.m4]) +m4_include([m4/ax_compiler_flags.m4]) +m4_include([m4/ax_compiler_flags_cflags.m4]) +m4_include([m4/ax_compiler_flags_gir.m4]) +m4_include([m4/ax_compiler_flags_ldflags.m4]) +m4_include([m4/ax_is_release.m4]) +m4_include([m4/ax_require_defined.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/gtk-doc.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/introspection.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/pkg.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4]) diff --git a/build-aux/compile b/build-aux/compile new file mode 100755 index 0000000..a85b723 --- /dev/null +++ b/build-aux/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/config.guess b/build-aux/config.guess new file mode 100755 index 0000000..2e9ad7f --- /dev/null +++ b/build-aux/config.guess @@ -0,0 +1,1462 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2016 Free Software Foundation, Inc. + +timestamp='2016-10-02' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = hppa2.0w ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +cat >&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/config.rpath b/build-aux/config.rpath new file mode 100755 index 0000000..b625621 --- /dev/null +++ b/build-aux/config.rpath @@ -0,0 +1,684 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2014 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's _LT_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | cygwin* | pw32* | os2* | cegcc*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + ecc*) + wl='-Wl,' + ;; + icc* | ifort*) + wl='-Wl,' + ;; + lf95*) + wl='-Wl,' + ;; + nagfor*) + wl='-Wl,-Wl,,' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + xl* | bgxl* | bgf* | mpixl*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ F* | *Sun*Fortran*) + wl= + ;; + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + newsos6) + ;; + *nto* | *qnx*) + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + wl='-Qoption ld ' + ;; + *) + wl='-Wl,' + ;; + esac + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's _LT_LINKER_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32* | cegcc*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + haiku*) + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + case "$host_cpu" in + powerpc) + ;; + m68k) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then + : + else + ld_shlibs=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd2.[01]*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + *nto* | *qnx*) + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix[4-9]*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + case "$host_cpu" in + powerpc*) + library_names_spec='$libname$shrext' ;; + m68k) + library_names_spec='$libname.a' ;; + esac + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32* | cegcc*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd[23].*) + library_names_spec='$libname$shrext$versuffix' + ;; + freebsd* | dragonfly*) + library_names_spec='$libname$shrext' + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + haiku*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + *nto* | *qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + tpf*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2016 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/build-aux/depcomp b/build-aux/depcomp new file mode 100755 index 0000000..fc98710 --- /dev/null +++ b/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/install-sh b/build-aux/install-sh new file mode 100755 index 0000000..59990a1 --- /dev/null +++ b/build-aux/install-sh @@ -0,0 +1,508 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2014-09-12.12; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + # $RANDOM is not portable (e.g. dash); use it when possible to + # lower collision chance + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # As "mkdir -p" follows symlinks and we work in /tmp possibly; so + # create the $tmpdir first (and fail if unsuccessful) to make sure + # that nobody tries to guess the $tmpdir name. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh new file mode 100644 index 0000000..a736cf9 --- /dev/null +++ b/build-aux/ltmain.sh @@ -0,0 +1,11156 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-2" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2014-01-07.03; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + eval $_G_hook '"$@"' + + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + done + + func_quote_for_eval ${1+"$@"} + func_run_hooks_result=$func_quote_for_eval_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, remove any +# options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# +# func_quote_for_eval ${1+"$@"} +# my_options_prep_result=$func_quote_for_eval_result +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# ;; +# *) set dummy "$_G_opt" "$*"; shift; break ;; +# esac +# done +# +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# func_quote_for_eval ${1+"$@"} +# my_option_validation_result=$func_quote_for_eval_result +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll alse need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + func_options_prep ${1+"$@"} + eval func_parse_options \ + ${func_options_prep_result+"$func_options_prep_result"} + eval func_validate_options \ + ${func_parse_options_result+"$func_parse_options_result"} + + eval func_run_hooks func_options \ + ${func_validate_options_result+"$func_validate_options_result"} + + # save modified positional parameters for caller + func_options_result=$func_run_hooks_result +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propogate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning. +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + func_run_hooks func_options_prep ${1+"$@"} + + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + func_run_hooks func_parse_options ${1+"$@"} + + # Adjust func_parse_options positional parameters to match + eval set dummy "$func_run_hooks_result"; shift + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + test $# = 0 && func_missing_arg $_G_opt && break + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + func_run_hooks func_validate_options ${1+"$@"} + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-2 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + esac + done + + + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/build-aux/missing b/build-aux/missing new file mode 100755 index 0000000..f62bbae --- /dev/null +++ b/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program 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 General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..0bf5564 --- /dev/null +++ b/config.h.in @@ -0,0 +1,101 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Package name */ +#undef GETTEXT_PACKAGE + +/* Define if building against cairo-xlib-xrender */ +#undef HAVE_CAIRO_XLIB_XRENDER + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define if you have libstartup-notification */ +#undef HAVE_STARTUP_NOTIFICATION + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the XRes library */ +#undef HAVE_XRES + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define if debugging is disabled */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING diff --git a/configure b/configure new file mode 100755 index 0000000..d3a7e0f --- /dev/null +++ b/configure @@ -0,0 +1,21119 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for libwnck 3.24.1. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libwnck' +PACKAGE_TARNAME='libwnck' +PACKAGE_VERSION='3.24.1' +PACKAGE_STRING='libwnck 3.24.1' +PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck' +PACKAGE_URL='' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +gt_needs= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +HAVE_INTROSPECTION_FALSE +HAVE_INTROSPECTION_TRUE +INTROSPECTION_MAKEFILE +INTROSPECTION_LIBS +INTROSPECTION_CFLAGS +INTROSPECTION_TYPELIBDIR +INTROSPECTION_GIRDIR +INTROSPECTION_GENERATE +INTROSPECTION_COMPILER +INTROSPECTION_SCANNER +GTK_DOC_USE_REBASE_FALSE +GTK_DOC_USE_REBASE_TRUE +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +GTK_DOC_BUILD_PDF_FALSE +GTK_DOC_BUILD_PDF_TRUE +GTK_DOC_BUILD_HTML_FALSE +GTK_DOC_BUILD_HTML_TRUE +ENABLE_GTK_DOC_FALSE +ENABLE_GTK_DOC_TRUE +HAVE_GTK_DOC_FALSE +HAVE_GTK_DOC_TRUE +GTKDOC_DEPS_LIBS +GTKDOC_DEPS_CFLAGS +HTML_DIR +GTKDOC_MKPDF +GTKDOC_REBASE +GTKDOC_CHECK_PATH +GTKDOC_CHECK +LIBWNCK_LIBS +LIBWNCK_CFLAGS +XRES_PACKAGE +X11_PACKAGE +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF +XLIB_LIBS +XLIB_CFLAGS +STARTUP_NOTIFICATION_PACKAGE +STARTUP_NOTIFICATION_LIBS +STARTUP_NOTIFICATION_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +LIBM +PKG_CONFIG +GLIB_COMPILE_RESOURCES +GETTEXT_PACKAGE +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +ENABLE_TOOLS_FALSE +ENABLE_TOOLS_TRUE +DISABLE_DEPRECATED_CFLAGS +WARN_SCANNERFLAGS +WARN_LDFLAGS +WARN_CFLAGS +CPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +WNCK_MICRO_VERSION +WNCK_MINOR_VERSION +WNCK_MAJOR_VERSION +LIBWNCK_AGE +LIBWNCK_REVISION +LIBWNCK_CURRENT +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_debug +enable_static +enable_shared +with_pic +enable_fast_install +with_aix_soname +enable_dependency_tracking +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_compile_warnings +enable_Werror +enable_deprecation_flags +enable_tools +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_startup_notification +with_x +with_html_dir +enable_gtk_doc +enable_gtk_doc_html +enable_gtk_doc_pdf +enable_introspection +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +LT_SYS_LIBRARY_PATH +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +STARTUP_NOTIFICATION_CFLAGS +STARTUP_NOTIFICATION_LIBS +XLIB_CFLAGS +XLIB_LIBS +XMKMF +LIBWNCK_CFLAGS +LIBWNCK_LIBS +GTKDOC_DEPS_CFLAGS +GTKDOC_DEPS_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libwnck 3.24.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/libwnck] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libwnck 3.24.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-debug=[yes/info/profile/no] + compile with debugging + --enable-static[=PKGS] build static libraries [default=no] + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-compile-warnings=[no/yes/error] + Enable compiler warnings and errors + --disable-Werror Unconditionally make all compiler warnings non-fatal + --enable-deprecation-flags + use *_DISABLE_DEPRECATED flags [default=no] + --enable-tools install wnck-based tools [default=yes] + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --enable-startup-notification + startup notification library [default=auto] + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gtk-doc-html build documentation in html format [[default=yes]] + --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] + --enable-introspection=[no/auto/yes] + Enable introspection for this build + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --with-x use the X Window System + --with-html-dir=PATH path to installed docs + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + STARTUP_NOTIFICATION_CFLAGS + C compiler flags for STARTUP_NOTIFICATION, overriding pkg-config + STARTUP_NOTIFICATION_LIBS + linker flags for STARTUP_NOTIFICATION, overriding pkg-config + XLIB_CFLAGS C compiler flags for XLIB, overriding pkg-config + XLIB_LIBS linker flags for XLIB, overriding pkg-config + XMKMF Path to xmkmf, Makefile generator for X Window System + LIBWNCK_CFLAGS + C compiler flags for LIBWNCK, overriding pkg-config + LIBWNCK_LIBS + linker flags for LIBWNCK, overriding pkg-config + GTKDOC_DEPS_CFLAGS + C compiler flags for GTKDOC_DEPS, overriding pkg-config + GTKDOC_DEPS_LIBS + linker flags for GTKDOC_DEPS, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libwnck configure 3.24.1 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libwnck $as_me 3.24.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +gt_needs="$gt_needs " +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + # $is_release = (.git directory does not exist) + if test -d ${srcdir}/.git; then : + ax_is_release=no +else + ax_is_release=yes +fi + + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +ac_config_headers="$ac_config_headers config.h" + + +am__api_version='1.15' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libwnck' + VERSION='3.24.1' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' + +# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 +$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } + if test $am_uid -le $am_max_uid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 +$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } + if test $am_gid -le $am_max_gid; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + _am_tools=none + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_ustar-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debugging" >&5 +$as_echo_n "checking whether to enable debugging... " >&6; } + + ax_enable_debug_default=yes + ax_enable_debug_is_release=$ax_is_release + + # If this is a release, override the default. + if test "$ax_enable_debug_is_release" = "yes"; then : + ax_enable_debug_default="no" +fi + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; +else + enable_debug=$ax_enable_debug_default +fi + + + # empty mean debug yes + if test "x$enable_debug" = "x"; then : + enable_debug="yes" +fi + + # case of debug + case $enable_debug in #( + yes) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ;; #( + info) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: info" >&5 +$as_echo "info" >&6; } + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ;; #( + profile) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: profile" >&5 +$as_echo "profile" >&6; } + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ;; #( + *) : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "x${CFLAGS+set}" != "xset"; then : + CFLAGS="" +fi + if test "x${CXXFLAGS+set}" != "xset"; then : + CXXFLAGS="" +fi + if test "x${FFLAGS+set}" != "xset"; then : + FFLAGS="" +fi + if test "x${FCFLAGS+set}" != "xset"; then : + FCFLAGS="" +fi + if test "x${OBJCFLAGS+set}" != "xset"; then : + OBJCFLAGS="" +fi + ;; +esac + + if test "x$enable_debug" = "xyes"; then : + +else + +$as_echo "#define NDEBUG /**/" >>confdefs.h + +fi + ax_enable_debug=$enable_debug + + + +LIBWNCK_CURRENT=3 + +LIBWNCK_REVISION=0 + +LIBWNCK_AGE=3 + + + + + +WNCK_MAJOR_VERSION=3 +WNCK_MINOR_VERSION=24 +WNCK_MICRO_VERSION=1 + + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +$as_echo "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +$as_echo_n "checking for a working dd... " >&6; } +if ${ac_cv_path_lt_DD+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in dd; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +$as_echo "$ac_cv_path_lt_DD" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +$as_echo_n "checking how to truncate binary pipes... " >&6; } +if ${lt_cv_truncate_bin+:} false; then : + $as_echo_n "(cached) " >&6 +else + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +$as_echo "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_dlopen=yes +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_static=no +fi + + + + + + + + + + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +$as_echo_n "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test "${with_aix_soname+set}" = set; then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else + if ${lt_cv_with_aix_soname+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +$as_echo "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test no = "$hard_links"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen=shl_load +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen=dlopen +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + + + # C support is enabled by default. + + + # Only enable C++ support if AC_PROG_CXX is called. The redefinition of + # AC_PROG_CXX is so that a fatal error is emitted if this macro is called + # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be + # checked. + + + + + # Default value for IS-RELEASE is $ax_is_release + ax_compiler_flags_is_release=$ax_is_release + + # Check whether --enable-compile-warnings was given. +if test "${enable_compile_warnings+set}" = set; then : + enableval=$enable_compile_warnings; +else + if test "$ax_compiler_flags_is_release" = "yes"; then : + enable_compile_warnings="yes" +else + enable_compile_warnings="error" +fi +fi + + # Check whether --enable-Werror was given. +if test "${enable_Werror+set}" = set; then : + enableval=$enable_Werror; +else + enable_Werror=maybe +fi + + + # Return the user's chosen warning level + if test "$enable_Werror" = "no" -a \ + "$enable_compile_warnings" = "error"; then : + + enable_compile_warnings="yes" + +fi + + ax_enable_compile_warnings=$enable_compile_warnings + + + + + + + + + + + # Variable names + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_cflags variable, and + # Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unknown-warning-option" >&5 +$as_echo_n "checking whether C compiler accepts -Werror=unknown-warning-option... " >&6; } +if ${ax_cv_check_cflags___Werror_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Werror_unknown_warning_option=yes +else + ax_cv_check_cflags___Werror_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror_unknown_warning_option" >&5 +$as_echo "$ax_cv_check_cflags___Werror_unknown_warning_option" >&6; } +if test "x$ax_cv_check_cflags___Werror_unknown_warning_option" = xyes; then : + + ax_compiler_flags_test="-Werror=unknown-warning-option" + +else + + ax_compiler_flags_test="" + +fi + + + # Check that -Wno-suggest-attribute=format is supported + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wno-suggest-attribute=format" >&5 +$as_echo_n "checking whether C compiler accepts -Wno-suggest-attribute=format... " >&6; } +if ${ax_cv_check_cflags___Wno_suggest_attribute_format+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wno-suggest-attribute=format" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Wno_suggest_attribute_format=yes +else + ax_cv_check_cflags___Wno_suggest_attribute_format=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wno_suggest_attribute_format" >&5 +$as_echo "$ax_cv_check_cflags___Wno_suggest_attribute_format" >&6; } +if test "x$ax_cv_check_cflags___Wno_suggest_attribute_format" = xyes; then : + + ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format" + +else + + ax_compiler_no_suggest_attribute_flags="" + +fi + + + # Base flags + + + + +for flag in -fno-strict-aliasing ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + + + + +for flag in -Wall -Wextra -Wundef -Wnested-externs -Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wno-unused-parameter -Wno-missing-field-initializers -Wdeclaration-after-statement -Wformat=2 -Wold-style-definition -Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare -Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute -Wmissing-noreturn -Winit-self -Wredundant-decls -Wmissing-include-dirs -Wunused-but-set-variable -Warray-bounds -Wimplicit-function-declaration -Wreturn-type -Wswitch-enum -Wswitch-default ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" -Werror "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains -Werror"; } >&5 + (: WARN_CFLAGS already contains -Werror) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " -Werror" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=-Werror + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + + + + + +for flag in $ax_compiler_no_suggest_attribute_flags ; do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + + # In the flags below, when disabling specific flags, always add *both* + # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example) + # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall, + # which effectively turns that flag back on again as an error. + for flag in $WARN_CFLAGS; do + case $flag in #( + -Wno-*=*) : + ;; #( + -Wno-*) : + + + + + +for flag in -Wno-error=$($as_echo $flag | $SED 's/^-Wno-//'); do + as_CACHEVAR=`$as_echo "ax_cv_check_cflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 +$as_echo_n "checking whether C compiler accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_CFLAGS+:} false; then : + + case " $WARN_CFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS already contains \$flag"; } >&5 + (: WARN_CFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_CFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_CFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_CFLAGS=\"\$WARN_CFLAGS\""; } >&5 + (: WARN_CFLAGS="$WARN_CFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + ;; #( + *) : + ;; +esac + done + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # Substitute the variables + + + + + + + + + + + + + + # Variable names + + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_ldflags variable, + # and Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Werror=unknown-warning-option" >&5 +$as_echo_n "checking whether C compiler accepts -Werror=unknown-warning-option... " >&6; } +if ${ax_cv_check_cflags___Werror_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags___Werror_unknown_warning_option=yes +else + ax_cv_check_cflags___Werror_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Werror_unknown_warning_option" >&5 +$as_echo "$ax_cv_check_cflags___Werror_unknown_warning_option" >&6; } +if test "x$ax_cv_check_cflags___Werror_unknown_warning_option" = xyes; then : + + ax_compiler_flags_test="-Werror=unknown-warning-option" + +else + + ax_compiler_flags_test="" + +fi + + + # macOS linker does not have --as-needed + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-as-needed" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--no-as-needed... " >&6; } +if ${ax_cv_check_ldflags___Wl___no_as_needed+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--no-as-needed" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl___no_as_needed=yes +else + ax_cv_check_ldflags___Wl___no_as_needed=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___no_as_needed" >&5 +$as_echo "$ax_cv_check_ldflags___Wl___no_as_needed" >&6; } +if test "x$ax_cv_check_ldflags___Wl___no_as_needed" = xyes; then : + + ax_compiler_flags_as_needed_option="-Wl,--no-as-needed" + +else + + ax_compiler_flags_as_needed_option="" + +fi + + + # macOS linker speaks with a different accent + ax_compiler_flags_fatal_warnings_option="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--fatal-warnings" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--fatal-warnings... " >&6; } +if ${ax_cv_check_ldflags___Wl___fatal_warnings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--fatal-warnings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl___fatal_warnings=yes +else + ax_cv_check_ldflags___Wl___fatal_warnings=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___fatal_warnings" >&5 +$as_echo "$ax_cv_check_ldflags___Wl___fatal_warnings" >&6; } +if test "x$ax_cv_check_ldflags___Wl___fatal_warnings" = xyes; then : + + ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings" + +else + : +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-fatal_warnings" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-fatal_warnings... " >&6; } +if ${ax_cv_check_ldflags___Wl__fatal_warnings+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-fatal_warnings" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags___Wl__fatal_warnings=yes +else + ax_cv_check_ldflags___Wl__fatal_warnings=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__fatal_warnings" >&5 +$as_echo "$ax_cv_check_ldflags___Wl__fatal_warnings" >&6; } +if test "x$ax_cv_check_ldflags___Wl__fatal_warnings" = xyes; then : + + ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings" + +else + : +fi + + + # Base flags + + + + +for flag in $ax_compiler_flags_as_needed_option ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + + + + +for flag in ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + + + + +for flag in $ax_compiler_flags_fatal_warnings_option ; do + as_CACHEVAR=`$as_echo "ax_cv_check_ldflags_$ax_compiler_flags_test_$flag" | $as_tr_sh` +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts $flag" >&5 +$as_echo_n "checking whether the linker accepts $flag... " >&6; } +if eval \${$as_CACHEVAR+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $ax_compiler_flags_test $flag" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$as_CACHEVAR=yes" +else + eval "$as_CACHEVAR=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +eval ac_res=\$$as_CACHEVAR + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then : + +if ${WARN_LDFLAGS+:} false; then : + + case " $WARN_LDFLAGS " in #( + *" $flag "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS already contains \$flag"; } >&5 + (: WARN_LDFLAGS already contains $flag) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_LDFLAGS " $flag" + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_LDFLAGS=$flag + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_LDFLAGS=\"\$WARN_LDFLAGS\""; } >&5 + (: WARN_LDFLAGS="$WARN_LDFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + +else + : +fi + +done + + +fi + + # Substitute the variables + + + + + + + # Variable names + + + # Base flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains "; } >&5 + (: WARN_SCANNERFLAGS already contains ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + + if test "$ax_enable_compile_warnings" != "no"; then : + + # "yes" flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" --warn-all "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains --warn-all "; } >&5 + (: WARN_SCANNERFLAGS already contains --warn-all ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " --warn-all " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= --warn-all + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + +fi + if test "$ax_enable_compile_warnings" = "error"; then : + + # "error" flags + +if ${WARN_SCANNERFLAGS+:} false; then : + + case " $WARN_SCANNERFLAGS " in #( + *" --warn-error "*) : + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS already contains --warn-error "; } >&5 + (: WARN_SCANNERFLAGS already contains --warn-error ) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append WARN_SCANNERFLAGS " --warn-error " + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else + + WARN_SCANNERFLAGS= --warn-error + { { $as_echo "$as_me:${as_lineno-$LINENO}: : WARN_SCANNERFLAGS=\"\$WARN_SCANNERFLAGS\""; } >&5 + (: WARN_SCANNERFLAGS="$WARN_SCANNERFLAGS") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + +fi + + +fi + + # Substitute the variables + + + + +# Check whether --enable-deprecation_flags was given. +if test "${enable_deprecation_flags+set}" = set; then : + enableval=$enable_deprecation_flags; +else + enable_deprecation_flags=no +fi + + +if test "x$enable_deprecation_flags" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS=$DISABLE_DEPRECATED + +fi + +# Check whether --enable-tools was given. +if test "${enable_tools+set}" = set; then : + enableval=$enable_tools; +else + enable_tools=yes +fi + + if test "x$enable_tools" != "xno"; then + ENABLE_TOOLS_TRUE= + ENABLE_TOOLS_FALSE='#' +else + ENABLE_TOOLS_TRUE='#' + ENABLE_TOOLS_FALSE= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.19 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMSGFMT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XGETTEXT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MSGMERGE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${acl_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${acl_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if ${acl_cv_rpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then : + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if ${gl_cv_solaris_64bit+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _LP64 +sixtyfour bits +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sixtyfour bits" >/dev/null 2>&1; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } +if eval \${$gt_func_gnugettext_libc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libc=yes" +else + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if ${am_cv_func_iconv+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if ${am_cv_func_iconv_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + +int +main () +{ +int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +$as_echo "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + HAVE_LIBINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'intl'; then + LIBINTL_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } +if eval \${$gt_func_gnugettext_libintl+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libintl=yes" +else + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + +int +main () +{ + +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + +$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + +GETTEXT_PACKAGE=libwnck-3.0 + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + +# Extract the first word of "glib-compile-resources", so it can be a program name with args. +set dummy glib-compile-resources; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GLIB_COMPILE_RESOURCES+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_RESOURCES in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_RESOURCES="$GLIB_COMPILE_RESOURCES" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GLIB_COMPILE_RESOURCES="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_COMPILE_RESOURCES=$ac_cv_path_GLIB_COMPILE_RESOURCES +if test -n "$GLIB_COMPILE_RESOURCES"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_RESOURCES" >&5 +$as_echo "$GLIB_COMPILE_RESOURCES" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 +$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } +if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _mwvalidcheckl (); +int +main () +{ +return _mwvalidcheckl (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mw__mwvalidcheckl=yes +else + ac_cv_lib_mw__mwvalidcheckl=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 +$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } +if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then : + LIBM=-lmw +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if ${ac_cv_lib_m_cos+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = xyes; then : + LIBM="$LIBM -lm" +fi + + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if ${ac_cv_lib_m_cos+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = xyes; then : + LIBM=-lm +fi + + ;; +esac + + + + +# Check whether --enable-startup-notification was given. +if test "${enable_startup_notification+set}" = set; then : + enableval=$enable_startup_notification; +else + enable_startup_notification=auto +fi + + +STARTUP_NOTIFICATION_PACKAGE= +if test "$enable_startup_notification" != "no"; then + STARTUP_NOTIFICATION_REQUIRED=0.4 + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for STARTUP_NOTIFICATION" >&5 +$as_echo_n "checking for STARTUP_NOTIFICATION... " >&6; } + +if test -n "$STARTUP_NOTIFICATION_CFLAGS"; then + pkg_cv_STARTUP_NOTIFICATION_CFLAGS="$STARTUP_NOTIFICATION_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= \$STARTUP_NOTIFICATION_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_STARTUP_NOTIFICATION_CFLAGS=`$PKG_CONFIG --cflags "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$STARTUP_NOTIFICATION_LIBS"; then + pkg_cv_STARTUP_NOTIFICATION_LIBS="$STARTUP_NOTIFICATION_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= \$STARTUP_NOTIFICATION_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_STARTUP_NOTIFICATION_LIBS=`$PKG_CONFIG --libs "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED" 2>&1` + else + STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$STARTUP_NOTIFICATION_PKG_ERRORS" >&5 + + have_sn=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + have_sn=no +else + STARTUP_NOTIFICATION_CFLAGS=$pkg_cv_STARTUP_NOTIFICATION_CFLAGS + STARTUP_NOTIFICATION_LIBS=$pkg_cv_STARTUP_NOTIFICATION_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_sn=yes +fi + + if test "$have_sn" = "no" -a "$enable_start_notification" = "yes"; then + as_fn_error $? "startup-notification support required but not found" "$LINENO" 5 + fi + + if test "$have_sn" = "yes"; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STARTUP_NOTIFICATION 1 +_ACEOF + + STARTUP_NOTIFICATION_PACKAGE=libstartup-notification-1.0 + fi +else + have_sn=no +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( + *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XLIB" >&5 +$as_echo_n "checking for XLIB... " >&6; } + +if test -n "$XLIB_CFLAGS"; then + pkg_cv_XLIB_CFLAGS="$XLIB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XLIB_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$XLIB_LIBS"; then + pkg_cv_XLIB_LIBS="$XLIB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XLIB_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "x11" 2>&1` + else + XLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "x11" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$XLIB_PKG_ERRORS" >&5 + + X11_PACKAGE= + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + if test "x$no_x" = xyes; then + as_fn_error $? "\"no (requires X development libraries)\"" "$LINENO" 5 + else + XLIB_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + XLIB_CFLAGS=$X_CFLAGS + fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X11_PACKAGE= + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if ${ac_cv_lib_nsl_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if ${ac_cv_lib_bsd_gethostbyname+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = xyes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = xyes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if ${ac_cv_lib_posix_remove+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if ${ac_cv_lib_ipc_shmat+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = xyes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + if test "x$no_x" = xyes; then + as_fn_error $? "\"no (requires X development libraries)\"" "$LINENO" 5 + else + XLIB_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + XLIB_CFLAGS=$X_CFLAGS + fi +else + XLIB_CFLAGS=$pkg_cv_XLIB_CFLAGS + XLIB_LIBS=$pkg_cv_XLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X11_PACKAGE=x11 +fi + + +if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo-xlib-xrender\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cairo-xlib-xrender") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_CAIRO_XLIB_XRENDER 1 +_ACEOF + + CAIRO_XLIB_XRENDER_PACKAGE=cairo-xlib-xrender +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if building with X Resource Information Extension Library" >&5 +$as_echo_n "checking if building with X Resource Information Extension Library... " >&6; } +if $PKG_CONFIG xres; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + have_xres=yes + +cat >>confdefs.h <<_ACEOF +#define HAVE_XRES 1 +_ACEOF + + XRES_PACKAGE=xres +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XResQueryExtension in -lXRes" >&5 +$as_echo_n "checking for XResQueryExtension in -lXRes... " >&6; } +if ${ac_cv_lib_XRes_XResQueryExtension+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lXRes $XLIB_LIBS -lXext $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XResQueryExtension (); +int +main () +{ +return XResQueryExtension (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_XRes_XResQueryExtension=yes +else + ac_cv_lib_XRes_XResQueryExtension=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_XRes_XResQueryExtension" >&5 +$as_echo "$ac_cv_lib_XRes_XResQueryExtension" >&6; } +if test "x$ac_cv_lib_XRes_XResQueryExtension" = xyes; then : + XLIB_LIBS="$XLIB_LIBS -lXRes -lXext" + have_xres=yes + +cat >>confdefs.h <<_ACEOF +#define HAVE_XRES 1 +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + have_xres=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + XRES_PACKAGE= +fi + + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBWNCK" >&5 +$as_echo_n "checking for LIBWNCK... " >&6; } + +if test -n "$LIBWNCK_CFLAGS"; then + pkg_cv_LIBWNCK_CFLAGS="$LIBWNCK_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + \$CAIRO_XLIB_XRENDER_PACKAGE + \$STARTUP_NOTIFICATION_PACKAGE + \$XRES_PACKAGE +\""; } >&5 + ($PKG_CONFIG --exists --print-errors " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBWNCK_CFLAGS=`$PKG_CONFIG --cflags " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$LIBWNCK_LIBS"; then + pkg_cv_LIBWNCK_LIBS="$LIBWNCK_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + \$CAIRO_XLIB_XRENDER_PACKAGE + \$STARTUP_NOTIFICATION_PACKAGE + \$XRES_PACKAGE +\""; } >&5 + ($PKG_CONFIG --exists --print-errors " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBWNCK_LIBS=`$PKG_CONFIG --libs " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBWNCK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +" 2>&1` + else + LIBWNCK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs " + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBWNCK_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements ( + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +) were not met: + +$LIBWNCK_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables LIBWNCK_CFLAGS +and LIBWNCK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables LIBWNCK_CFLAGS +and LIBWNCK_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see . +See \`config.log' for more details" "$LINENO" 5; } +else + LIBWNCK_CFLAGS=$pkg_cv_LIBWNCK_CFLAGS + LIBWNCK_LIBS=$pkg_cv_LIBWNCK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +################################################## +# Checks for gtk-doc and docbook-tools +################################################## + + + + gtk_doc_requires="gtk-doc >= 1.9" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk-doc" >&5 +$as_echo_n "checking for gtk-doc... " >&6; } + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$gtk_doc_requires\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$gtk_doc_requires") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + have_gtk_doc=yes +else + have_gtk_doc=no +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gtk_doc" >&5 +$as_echo "$have_gtk_doc" >&6; } + + if test "$have_gtk_doc" = "no"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found." >&5 +$as_echo "$as_me: WARNING: + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found." >&2;} + fi + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_GTKDOC_CHECK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$GTKDOC_CHECK"; then + ac_cv_prog_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_GTKDOC_CHECK="gtkdoc-check.test" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GTKDOC_CHECK=$ac_cv_prog_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "gtkdoc-check", so it can be a program name with args. +set dummy gtkdoc-check; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_CHECK_PATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_CHECK_PATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK_PATH="$GTKDOC_CHECK_PATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_CHECK_PATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_CHECK_PATH=$ac_cv_path_GTKDOC_CHECK_PATH +if test -n "$GTKDOC_CHECK_PATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK_PATH" >&5 +$as_echo "$GTKDOC_CHECK_PATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + for ac_prog in gtkdoc-rebase +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_REBASE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_REBASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE +if test -n "$GTKDOC_REBASE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 +$as_echo "$GTKDOC_REBASE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$GTKDOC_REBASE" && break +done +test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" + + # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. +set dummy gtkdoc-mkpdf; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_MKPDF in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF +if test -n "$GTKDOC_MKPDF"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 +$as_echo "$GTKDOC_MKPDF" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then : + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' +fi + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then : + enableval=$enable_gtk_doc; +else + enable_gtk_doc=no +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + as_fn_error $? " + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '$0'." "$LINENO" 5 + fi + + if test "x$PACKAGE_NAME" != "xglib"; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5 +$as_echo_n "checking for GTKDOC_DEPS... " >&6; } + +if test -n "$GTKDOC_DEPS_CFLAGS"; then + pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$GTKDOC_DEPS_LIBS"; then + pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` + else + GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTKDOC_DEPS_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + : +else + GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS + GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + fi + + # Check whether --enable-gtk-doc-html was given. +if test "${enable_gtk_doc_html+set}" = set; then : + enableval=$enable_gtk_doc_html; +else + enable_gtk_doc_html=yes +fi + + # Check whether --enable-gtk-doc-pdf was given. +if test "${enable_gtk_doc_pdf+set}" = set; then : + enableval=$enable_gtk_doc_pdf; +else + enable_gtk_doc_pdf=no +fi + + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + + + if test x$have_gtk_doc = xyes; then + HAVE_GTK_DOC_TRUE= + HAVE_GTK_DOC_FALSE='#' +else + HAVE_GTK_DOC_TRUE='#' + HAVE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test x$enable_gtk_doc_html = xyes; then + GTK_DOC_BUILD_HTML_TRUE= + GTK_DOC_BUILD_HTML_FALSE='#' +else + GTK_DOC_BUILD_HTML_TRUE='#' + GTK_DOC_BUILD_HTML_FALSE= +fi + + if test x$enable_gtk_doc_pdf = xyes; then + GTK_DOC_BUILD_PDF_TRUE= + GTK_DOC_BUILD_PDF_FALSE='#' +else + GTK_DOC_BUILD_PDF_TRUE='#' + GTK_DOC_BUILD_PDF_FALSE= +fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + if test -n "$GTKDOC_REBASE"; then + GTK_DOC_USE_REBASE_TRUE= + GTK_DOC_USE_REBASE_FALSE='#' +else + GTK_DOC_USE_REBASE_TRUE='#' + GTK_DOC_USE_REBASE_FALSE= +fi + + + + + + + # Check whether --enable-introspection was given. +if test "${enable_introspection+set}" = set; then : + enableval=$enable_introspection; +else + enable_introspection=auto +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gobject-introspection" >&5 +$as_echo_n "checking for gobject-introspection... " >&6; } + + case $enable_introspection in #( + no) : + found_introspection="no (disabled, use --enable-introspection to enable)" + ;; #( + yes) : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + : +else + as_fn_error $? "gobject-introspection-1.0 is not installed" "$LINENO" 5 +fi + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.14\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.14") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + found_introspection=yes +else + as_fn_error $? "You need to have gobject-introspection >= 0.6.14 installed to build libwnck" "$LINENO" 5 +fi + ;; #( + auto) : + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gobject-introspection-1.0 >= 0.6.14\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gobject-introspection-1.0 >= 0.6.14") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + found_introspection=yes +else + found_introspection=no +fi + enable_introspection=$found_introspection + ;; #( + *) : + as_fn_error $? "invalid argument passed to --enable-introspection, should be one of [no/auto/yes]" "$LINENO" 5 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $found_introspection" >&5 +$as_echo "$found_introspection" >&6; } + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + + + + + + + + + + if test "x$found_introspection" = "xyes"; then + HAVE_INTROSPECTION_TRUE= + HAVE_INTROSPECTION_FALSE='#' +else + HAVE_INTROSPECTION_TRUE='#' + HAVE_INTROSPECTION_FALSE= +fi + + + + +if test "$enable_introspection" = "yes"; then + # Redefine introspection dirs using proper prefixes + + INTROSPECTION_GIRDIR=`$PKG_CONFIG --define-variable=datadir=${datadir} --variable=girdir gobject-introspection-1.0` + + + INTROSPECTION_TYPELIBDIR=`$PKG_CONFIG --define-variable=libdir=${libdir} --variable=typelibdir gobject-introspection-1.0` + +fi + +ac_config_files="$ac_config_files Makefile doc/Makefile po/Makefile.in libwnck/Makefile libwnck/version.h libwnck-3.0.pc libwnck-3.0-uninstalled.pc" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_TOOLS_TRUE}" && test -z "${ENABLE_TOOLS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_TOOLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GTK_DOC_TRUE}" && test -z "${HAVE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_INTROSPECTION_TRUE}" && test -z "${HAVE_INTROSPECTION_FALSE}"; then + as_fn_error $? "conditional \"HAVE_INTROSPECTION\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libwnck $as_me 3.24.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libwnck config.status 3.24.1 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "libwnck/Makefile") CONFIG_FILES="$CONFIG_FILES libwnck/Makefile" ;; + "libwnck/version.h") CONFIG_FILES="$CONFIG_FILES libwnck/version.h" ;; + "libwnck-3.0.pc") CONFIG_FILES="$CONFIG_FILES libwnck-3.0.pc" ;; + "libwnck-3.0-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES libwnck-3.0-uninstalled.pc" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + +echo " + libwnck $VERSION + `echo libwnck $VERSION | sed "s/./=/g"` + + prefix: ${prefix} + exec_prefix: ${exec_prefix} + libdir: ${libdir} + bindir: ${bindir} + sbindir: ${sbindir} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + datadir: ${datadir} + source code location: ${srcdir} + compiler: ${CC} + cflags: ${CFLAGS} + Maintainer mode: ${USE_MAINTAINER_MODE} + Use *_DISABLE_DEPRECATED: ${enable_deprecation_flags} + + Startup notification support: ${have_sn} + XRes support: ${have_xres} + Build introspection support: ${found_introspection} + Build gtk-doc documentation: ${enable_gtk_doc} + Install wnck-based tools: ${enable_tools} + +" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..87e252a --- /dev/null +++ b/configure.ac @@ -0,0 +1,212 @@ +AC_PREREQ(2.62) + +m4_define([wnck_major_version], [3]) +m4_define([wnck_minor_version], [24]) +m4_define([wnck_micro_version], [1]) +m4_define([wnck_version], + [wnck_major_version.wnck_minor_version.wnck_micro_version]) + +AC_INIT([libwnck], [wnck_version], + [http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck]) + +AX_IS_RELEASE([git-directory]) + +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_HEADERS(config.h) + +AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_CONFIG_MACRO_DIR([m4]) + +AX_CHECK_ENABLE_DEBUG([yes]) + +dnl libtool versioning for libwnck + +dnl increment if the interface has additions, changes, removals. +LIBWNCK_CURRENT=3 + +dnl increment any time the source changes; set to +dnl 0 if you increment CURRENT +LIBWNCK_REVISION=0 + +dnl increment if any interfaces have been added; set to 0 +dnl if any interfaces have been changed or removed. removal has +dnl precedence over adding, so set to 0 if both happened. +LIBWNCK_AGE=3 + +AC_SUBST(LIBWNCK_CURRENT) +AC_SUBST(LIBWNCK_REVISION) +AC_SUBST(LIBWNCK_AGE) + +WNCK_MAJOR_VERSION=wnck_major_version +WNCK_MINOR_VERSION=wnck_minor_version +WNCK_MICRO_VERSION=wnck_micro_version +AC_SUBST(WNCK_MAJOR_VERSION) +AC_SUBST(WNCK_MINOR_VERSION) +AC_SUBST(WNCK_MICRO_VERSION) + +LT_PREREQ([2.2.6]) +LT_INIT([dlopen disable-static]) + +AC_PROG_CC + +AX_COMPILER_FLAGS([WARN_CFLAGS], [WARN_LDFLAGS]) + +AC_ARG_ENABLE(deprecation_flags, + [AC_HELP_STRING([--enable-deprecation-flags], + [use *_DISABLE_DEPRECATED flags @<:@default=no@:>@])],, + [enable_deprecation_flags=no]) + +if test "x$enable_deprecation_flags" = "xyes"; then + DISABLE_DEPRECATED_CFLAGS=$DISABLE_DEPRECATED + AC_SUBST(DISABLE_DEPRECATED_CFLAGS) +fi + +AC_ARG_ENABLE(tools, + [AC_HELP_STRING([--enable-tools], + [install wnck-based tools @<:@default=yes@:>@])],, + [enable_tools=yes]) +AM_CONDITIONAL(ENABLE_TOOLS, test "x$enable_tools" != "xno") + +AM_GNU_GETTEXT_VERSION([0.19.4]) +AM_GNU_GETTEXT([external]) + +GETTEXT_PACKAGE=libwnck-3.0 +AC_SUBST(GETTEXT_PACKAGE) +AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Package name]) + +AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources]) +AC_PATH_PROG(PKG_CONFIG, pkg-config) + +AC_CHECK_LIBM +AC_SUBST(LIBM) + +AC_ARG_ENABLE(startup-notification, + [AC_HELP_STRING([--enable-startup-notification], + [startup notification library @<:@default=auto@:>@])],, + [enable_startup_notification=auto]) + +STARTUP_NOTIFICATION_PACKAGE= +if test "$enable_startup_notification" != "no"; then + STARTUP_NOTIFICATION_REQUIRED=0.4 + PKG_CHECK_MODULES(STARTUP_NOTIFICATION, + [libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_REQUIRED], + [have_sn=yes], + [have_sn=no]) + + if test "$have_sn" = "no" -a "$enable_start_notification" = "yes"; then + AC_MSG_ERROR([startup-notification support required but not found]) + fi + + if test "$have_sn" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_STARTUP_NOTIFICATION, 1, [Define if you have libstartup-notification]) + STARTUP_NOTIFICATION_PACKAGE=libstartup-notification-1.0 + fi +else + have_sn=no +fi +AC_SUBST(STARTUP_NOTIFICATION_PACKAGE) + +PKG_CHECK_MODULES(XLIB, x11, + X11_PACKAGE=x11, + [X11_PACKAGE= + AC_PATH_XTRA + if test "x$no_x" = xyes; then + AC_MSG_ERROR("no (requires X development libraries)") + else + XLIB_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS" + XLIB_CFLAGS=$X_CFLAGS + fi]) +AC_SUBST(X11_PACKAGE) + +PKG_CHECK_EXISTS([cairo-xlib-xrender], + [AC_DEFINE_UNQUOTED([HAVE_CAIRO_XLIB_XRENDER], [1], + [Define if building against cairo-xlib-xrender]) + CAIRO_XLIB_XRENDER_PACKAGE=cairo-xlib-xrender]) + +AC_MSG_CHECKING([if building with X Resource Information Extension Library]) +if $PKG_CONFIG xres; then + AC_MSG_RESULT([yes]) + have_xres=yes + AC_DEFINE_UNQUOTED(HAVE_XRES, 1, [Define if you have the XRes library]) + XRES_PACKAGE=xres +else + AC_CHECK_LIB(XRes, XResQueryExtension, + [XLIB_LIBS="$XLIB_LIBS -lXRes -lXext" + have_xres=yes + AC_DEFINE_UNQUOTED(HAVE_XRES, 1, [Define if you have the XRes library]) + AC_MSG_RESULT([yes])], + [have_xres=no + AC_MSG_RESULT([no])], + $XLIB_LIBS -lXext) + XRES_PACKAGE= +fi +AC_SUBST(XRES_PACKAGE) +AC_SUBST(XLIB_CFLAGS) +AC_SUBST(XLIB_LIBS) + +PKG_CHECK_MODULES([LIBWNCK],[ + gtk+-3.0 >= 3.22.0 + glib-2.0 >= 2.32 + gobject-2.0 >= 2.13.0 + $CAIRO_XLIB_XRENDER_PACKAGE + $STARTUP_NOTIFICATION_PACKAGE + $XRES_PACKAGE +]) + +################################################## +# Checks for gtk-doc and docbook-tools +################################################## +GTK_DOC_CHECK([1.9]) + +GOBJECT_INTROSPECTION_CHECK([0.6.14]) + +if test "$enable_introspection" = "yes"; then + # Redefine introspection dirs using proper prefixes + + INTROSPECTION_GIRDIR=`$PKG_CONFIG --define-variable=datadir=${datadir} --variable=girdir gobject-introspection-1.0` + AC_SUBST(INTROSPECTION_GIRDIR) + + INTROSPECTION_TYPELIBDIR=`$PKG_CONFIG --define-variable=libdir=${libdir} --variable=typelibdir gobject-introspection-1.0` + AC_SUBST(INTROSPECTION_TYPELIBDIR) +fi + +AC_OUTPUT([ +Makefile +doc/Makefile +po/Makefile.in +libwnck/Makefile +libwnck/version.h +libwnck-3.0.pc +libwnck-3.0-uninstalled.pc +]) + +dnl --------------------------------------------------------------------------- +dnl - Show summary +dnl --------------------------------------------------------------------------- + +echo " + libwnck $VERSION + `echo libwnck $VERSION | sed "s/./=/g"` + + prefix: ${prefix} + exec_prefix: ${exec_prefix} + libdir: ${libdir} + bindir: ${bindir} + sbindir: ${sbindir} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + datadir: ${datadir} + source code location: ${srcdir} + compiler: ${CC} + cflags: ${CFLAGS} + Maintainer mode: ${USE_MAINTAINER_MODE} + Use *_DISABLE_DEPRECATED: ${enable_deprecation_flags} + + Startup notification support: ${have_sn} + XRes support: ${have_xres} + Build introspection support: ${found_introspection} + Build gtk-doc documentation: ${enable_gtk_doc} + Install wnck-based tools: ${enable_tools} + +" diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..6671d35 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,54 @@ +## Process this file with automake to produce Makefile.in + +# The name of the module. +DOC_MODULE=libwnck +DOC_MODULE_VERSION=3.0 + +# The top-level SGML file. +DOC_MAIN_SGML_FILE=libwnck-docs.sgml + +# The directory containing the source code. Relative to $(srcdir) +DOC_SOURCE_DIR=../libwnck + +# Extra options to pass to gtkdoc-scangobj +SCANGOBJ_OPTIONS= + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS=--deprecated-guards="WNCK_DISABLE_DEPRECATED" + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS=--sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref +FIXXREF_OPTIONS= + +# Used for dependencies +HFILE_GLOB=$(top_srcdir)/libwnck/*.h +CFILE_GLOB=$(top_srcdir)/libwnck/*.c + +# Header files to ignore when scanning +IGNORE_HFILES= + +EXTRA_HFILES = + +# Images to copy into HTML directory +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE) +content_files = example-force-update.c example-lazy-initialization.c + +# Other files to distribute +extra_files = + +# CFLAGS and LDFLAGS for compiling scan program. Only needed +# if $(DOC_MODULE).types is non-empty. +GTKDOC_CFLAGS = -I$(top_builddir) -I$(top_srcdir) $(LIBWNCK_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE -DWNCK_COMPILATION +GTKDOC_LIBS = $(top_builddir)/libwnck/libwnck-3.la $(LIBWNCK_LIBS) + +include $(top_srcdir)/gtk-doc.make + +CLEANFILES += gsf-scan.* + +.PHONY : dist-hook-local + +-include $(top_srcdir)/git.mk diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000..ad381ff --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,852 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/gtk-doc.make +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBWNCK_AGE = @LIBWNCK_AGE@ +LIBWNCK_CFLAGS = @LIBWNCK_CFLAGS@ +LIBWNCK_CURRENT = @LIBWNCK_CURRENT@ +LIBWNCK_LIBS = @LIBWNCK_LIBS@ +LIBWNCK_REVISION = @LIBWNCK_REVISION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STARTUP_NOTIFICATION_CFLAGS = @STARTUP_NOTIFICATION_CFLAGS@ +STARTUP_NOTIFICATION_LIBS = @STARTUP_NOTIFICATION_LIBS@ +STARTUP_NOTIFICATION_PACKAGE = @STARTUP_NOTIFICATION_PACKAGE@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WNCK_MAJOR_VERSION = @WNCK_MAJOR_VERSION@ +WNCK_MICRO_VERSION = @WNCK_MICRO_VERSION@ +WNCK_MINOR_VERSION = @WNCK_MINOR_VERSION@ +X11_PACKAGE = @X11_PACKAGE@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XLIB_CFLAGS = @XLIB_CFLAGS@ +XLIB_LIBS = @XLIB_LIBS@ +XMKMF = @XMKMF@ +XRES_PACKAGE = @XRES_PACKAGE@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# The name of the module. +DOC_MODULE = libwnck +DOC_MODULE_VERSION = 3.0 + +# The top-level SGML file. +DOC_MAIN_SGML_FILE = libwnck-docs.sgml + +# The directory containing the source code. Relative to $(srcdir) +DOC_SOURCE_DIR = ../libwnck + +# Extra options to pass to gtkdoc-scangobj +SCANGOBJ_OPTIONS = + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS = --deprecated-guards="WNCK_DISABLE_DEPRECATED" + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS = --sgml-mode --output-format=xml + +# Extra options to supply to gtkdoc-fixref +FIXXREF_OPTIONS = + +# Used for dependencies +HFILE_GLOB = $(top_srcdir)/libwnck/*.h +CFILE_GLOB = $(top_srcdir)/libwnck/*.c + +# Header files to ignore when scanning +IGNORE_HFILES = +EXTRA_HFILES = + +# Images to copy into HTML directory +HTML_IMAGES = + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE) +content_files = example-force-update.c example-lazy-initialization.c + +# Other files to distribute +extra_files = + +# CFLAGS and LDFLAGS for compiling scan program. Only needed +# if $(DOC_MODULE).types is non-empty. +GTKDOC_CFLAGS = -I$(top_builddir) -I$(top_srcdir) $(LIBWNCK_CFLAGS) -DWNCK_I_KNOW_THIS_IS_UNSTABLE -DWNCK_COMPILATION +GTKDOC_LIBS = $(top_builddir)/libwnck/libwnck-3.la $(LIBWNCK_LIBS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = +@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS = setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) \ + gtkdoc-check.test gsf-scan.* +@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = +@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp +@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = +@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp + +#### setup #### +GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) +GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; + +#### scan #### +GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) +GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; +GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) +GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; + +#### xml #### +GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) +GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML_0 = @echo " DOC Building XML"; + +#### html #### +GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) +GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; +GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) +GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; + +#### pdf #### +GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) +GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/gtk-doc.make $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-am +@ENABLE_GTK_DOC_FALSE@all-local: +all-am: Makefile all-local +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic \ + maintainer-clean-local + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local cscopelist-am ctags-am dist-hook \ + distclean distclean-generic distclean-libtool distclean-local \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-data-local \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + maintainer-clean-local mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ + uninstall-am uninstall-local + +.PRECIOUS: Makefile + + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +@ENABLE_GTK_DOC_TRUE@all-local: all-gtk-doc + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + test -f $$file && cp $$file $(abs_builddir)/html; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +@HAVE_GTK_DOC_TRUE@dist-check-gtkdoc: docs +@HAVE_GTK_DOC_FALSE@dist-check-gtkdoc: +@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc is needed to run 'make dist'. ***" +@HAVE_GTK_DOC_FALSE@ @echo "*** gtk-doc was not found when 'configure' ran. ***" +@HAVE_GTK_DOC_FALSE@ @echo "*** please install gtk-doc and rerun 'configure'. ***" +@HAVE_GTK_DOC_FALSE@ @false + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs + +.PHONY : dist-hook-local + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/doc/example-force-update.c b/doc/example-force-update.c new file mode 100644 index 0000000..2d54d14 --- /dev/null +++ b/doc/example-force-update.c @@ -0,0 +1,27 @@ +#include + +int +main (int argc, + char **argv) +{ + WnckScreen *screen; + WnckWindow *active_window; + GList *window_l; + + gdk_init (&argc, &argv); + + screen = wnck_screen_get_default (); + + wnck_screen_force_update (screen); + + active_window = wnck_screen_get_active_window (screen); + + for (window_l = wnck_screen_get_windows (screen); window_l != NULL; window_l = window_l->next) + { + WnckWindow *window = WNCK_WINDOW (window_l->data); + g_print ("%s%s\n", wnck_window_get_name (window), + window == active_window ? " (active)" : ""); + } + + return 0; +} diff --git a/doc/example-lazy-initialization.c b/doc/example-lazy-initialization.c new file mode 100644 index 0000000..dca0598 --- /dev/null +++ b/doc/example-lazy-initialization.c @@ -0,0 +1,51 @@ +#include + +static void +on_window_opened (WnckScreen *screen, + WnckWindow *window, + gpointer data) +{ + /* Note: when this event is emitted while screen is initialized, there is no + * active window yet. */ + + g_print ("%s\n", wnck_window_get_name (window)); +} + +static void +on_active_window_changed (WnckScreen *screen, + WnckWindow *previously_active_window, + gpointer data) +{ + WnckWindow *active_window; + + active_window = wnck_screen_get_active_window (screen); + + if (active_window) + g_print ("active: %s\n", wnck_window_get_name (active_window)); + else + g_print ("no active window\n"); +} + +int +main (int argc, + char **argv) +{ + GMainLoop *loop; + WnckScreen *screen; + + gdk_init (&argc, &argv); + + loop = g_main_loop_new (NULL, FALSE); + screen = wnck_screen_get_default (); + + g_signal_connect (screen, "window-opened", + G_CALLBACK (on_window_opened), NULL); + g_signal_connect (screen, "active-window-changed", + G_CALLBACK (on_active_window_changed), NULL); + + g_main_loop_run (loop); + + g_main_loop_unref (loop); + + return 0; +} diff --git a/doc/html/WnckApplication.html b/doc/html/WnckApplication.html new file mode 100644 index 0000000..c1d897c --- /dev/null +++ b/doc/html/WnckApplication.html @@ -0,0 +1,634 @@ + + + + +WnckApplication: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckApplication

+

WnckApplication — an object representing a group of windows of the same +application.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WnckApplication * + +wnck_application_get () +
+gulong + +wnck_application_get_xid () +
const char * + +wnck_application_get_name () +
const char * + +wnck_application_get_icon_name () +
+int + +wnck_application_get_pid () +
+gboolean + +wnck_application_get_icon_is_fallback () +
+GdkPixbuf * + +wnck_application_get_icon () +
+GdkPixbuf * + +wnck_application_get_mini_icon () +
const char * + +wnck_application_get_startup_id () +
+GList * + +wnck_application_get_windows () +
+int + +wnck_application_get_n_windows () +
+
+
+

Signals

+
+++++ + + + + + + + + + + + + +
voidicon-changedRun Last
voidname-changedRun Last
+
+
+

Types and Values

+
++++ + + + + +
 WnckApplication
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WnckApplication
+
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckApplication is a group of WnckWindow that are all in the same +application. It can be used to represent windows by applications, group +windows by applications or to manipulate all windows of a particular +application.

+

A WnckApplication is identified by the group leader of the WnckWindow +belonging to it, and new WnckWindow are added to a WnckApplication if and +only if they have the group leader of the WnckApplication.

+

The WnckApplication objects are always owned by libwnck and must not be +referenced or unreferenced.

+
+
+

Functions

+
+

wnck_application_get ()

+
WnckApplication *
+wnck_application_get (gulong xwindow);
+

Gets the WnckApplication corresponding to the group leader with xwindow + +as X window ID.

+
+

Parameters

+
+++++ + + + + + +

xwindow

the X window ID of a group leader.

 
+
+
+

Returns

+

the WnckApplication corresponding to +xwindow +, or NULL if there no such WnckApplication could be found. The +returned WnckApplication is owned by libwnck and must not be referenced or +unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_application_get_xid ()

+
gulong
+wnck_application_get_xid (WnckApplication *app);
+

Gets the X window ID of the group leader window for app +.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the X window ID of the group leader window for app +.

+
+
+
+
+

wnck_application_get_name ()

+
const char *
+wnck_application_get_name (WnckApplication *app);
+

Gets the name of app +. Since there is no way to properly find this name, +various suboptimal heuristics are used to find it. GTK+ should probably have +a function to allow applications to set the _NET_WM_NAME property on the +group leader as the application name, and the EWMH +should say that this is where the application name goes.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the name of app +, or a fallback name if no name is available.

+
+
+
+
+

wnck_application_get_icon_name ()

+
const char *
+wnck_application_get_icon_name (WnckApplication *app);
+

Gets the icon name of app + (to be used when app + is minimized). Since +there is no way to properly find this name, various suboptimal heuristics +are used to find it.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication

 
+
+
+

Returns

+

the icon name of app +, or a fallback icon name if no icon name +is available.

+
+
+
+
+

wnck_application_get_pid ()

+
int
+wnck_application_get_pid (WnckApplication *app);
+

Gets the process ID of app +.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the process ID of app +, or 0 if none is available.

+
+
+
+
+

wnck_application_get_icon_is_fallback ()

+
gboolean
+wnck_application_get_icon_is_fallback (WnckApplication *app);
+

Gets whether a default fallback icon is used for app + (because none +was set on app +).

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication

 
+
+
+

Returns

+

TRUE if the icon for app +is a fallback, FALSE otherwise.

+
+
+
+
+

wnck_application_get_icon ()

+
GdkPixbuf *
+wnck_application_get_icon (WnckApplication *app);
+

Gets the icon to be used for app +. If no icon is set for app +, a +suboptimal heuristic is used to find an appropriate icon. If no icon was +found, a fallback icon is used.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the icon for app +. The caller should +reference the returned GdkPixbuf if it needs to keep +the icon around.

+

[transfer none]

+
+
+
+
+

wnck_application_get_mini_icon ()

+
GdkPixbuf *
+wnck_application_get_mini_icon (WnckApplication *app);
+

Gets the mini-icon to be used for app +. If no mini-icon is set for app +, +a suboptimal heuristic is used to find an appropriate icon. If no mini-icon +was found, a fallback mini-icon is used.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the mini-icon for app +. The caller should +reference the returned GdkPixbuf if it needs to keep +the mini-icon around.

+

[transfer none]

+
+
+
+
+

wnck_application_get_startup_id ()

+
const char *
+wnck_application_get_startup_id (WnckApplication *app);
+

Gets the startup sequence ID used for startup notification of app +.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the startup sequence ID used for startup notification of app +, +or NULL if none is available.

+
+

Since: 2.2

+
+
+
+

wnck_application_get_windows ()

+
GList *
+wnck_application_get_windows (WnckApplication *app);
+

Gets the list of WnckWindow belonging to app +.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the list of +WnckWindow belonging to app +, or NULL if the application contains no +window. The list should not be modified nor freed, as it is owned by app +.

+

[element-type WnckWindow][transfer none]

+
+
+
+
+

wnck_application_get_n_windows ()

+
int
+wnck_application_get_n_windows (WnckApplication *app);
+

Gets the number of WnckWindow belonging to app +.

+
+

Parameters

+
+++++ + + + + + +

app

a WnckApplication.

 
+
+
+

Returns

+

the number of WnckWindow belonging to app +.

+
+
+
+
+

Types and Values

+
+

WnckApplication

+
typedef struct _WnckApplication WnckApplication;
+

The WnckApplication struct contains only private fields and should not be +directly accessed.

+
+
+
+

Signal Details

+
+

The “icon-changed” signal

+
void
+user_function (WnckApplication *app,
+               gpointer         user_data)
+

Emitted when the icon of app + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

app

the WnckApplication which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “name-changed” signal

+
void
+user_function (WnckApplication *app,
+               gpointer         user_data)
+

Emitted when the name of app + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

app

the WnckApplication which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

See Also

+

wnck_window_get_application()

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckClassGroup.html b/doc/html/WnckClassGroup.html new file mode 100644 index 0000000..ce7f821 --- /dev/null +++ b/doc/html/WnckClassGroup.html @@ -0,0 +1,503 @@ + + + + +WnckClassGroup: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckClassGroup

+

WnckClassGroup — an object representing a group of windows of the same +class.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WnckClassGroup * + +wnck_class_group_get () +
const char * + +wnck_class_group_get_id () +
const char * + +wnck_class_group_get_res_class () +
const char * + +wnck_class_group_get_name () +
+GdkPixbuf * + +wnck_class_group_get_icon () +
+GdkPixbuf * + +wnck_class_group_get_mini_icon () +
+GList * + +wnck_class_group_get_windows () +
+
+
+

Signals

+
+++++ + + + + + + + + + + + + +
voidicon-changedRun Last
voidname-changedRun Last
+
+
+

Types and Values

+
++++ + + + + +
 WnckClassGroup
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WnckClassGroup
+
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckClassGroup is a group of WnckWindow that are all in the same +class. It can be used to represent windows by classes, group windows by +classes or to manipulate all windows of a particular class.

+

The class of a window is defined by the WM_CLASS property of this window. +More information about the WM_CLASS property is available in the WM_CLASS Property +section (section 4.1.2.5) of the ICCCM.

+

The WnckClassGroup objects are always owned by libwnck and must not be +referenced or unreferenced.

+
+
+

Functions

+
+

wnck_class_group_get ()

+
WnckClassGroup *
+wnck_class_group_get (const char *id);
+

Gets the WnckClassGroup corresponding to id +.

+
+

Parameters

+
+++++ + + + + + +

id

identifier name of the sought resource class.

 
+
+
+

Returns

+

the WnckClassGroup corresponding to +id +, or NULL if there is no WnckClassGroup with the specified +id +. The returned WnckClassGroup is owned by libwnck and must not be +referenced or unreferenced.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

wnck_class_group_get_id ()

+
const char *
+wnck_class_group_get_id (WnckClassGroup *class_group);
+

Gets the identifier name for class_group +. This is the resource class for +class_group +.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

the identifier name of class_group +, or an +empty string if the group has no identifier name.

+
+

Since: 3.2

+
+
+
+

wnck_class_group_get_res_class ()

+
const char *
+wnck_class_group_get_res_class (WnckClassGroup *class_group);
+
+

wnck_class_group_get_res_class has been deprecated since version 3.2 and should not be used in newly-written code.

+

Use wnck_class_group_get_id() instead.

+
+

Gets the resource class name for class_group +.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

the resource class name of class_group +, or an +empty string if the group has no resource class name.

+
+

Since: 2.2

+
+
+
+

wnck_class_group_get_name ()

+
const char *
+wnck_class_group_get_name (WnckClassGroup *class_group);
+

Gets an human-readable name for class_group +. Since there is no way to +properly find this name, a suboptimal heuristic is used to find it. The name +is the name of all WnckApplication for each WnckWindow in class_group + if +they all have the same name. If all WnckApplication don't have the same +name, the name is the name of all WnckWindow in class_group + if they all +have the same name. If all WnckWindow don't have the same name, the +resource class name is used.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

an human-readable name for class_group +.

+
+

Since: 2.2

+
+
+
+

wnck_class_group_get_icon ()

+
GdkPixbuf *
+wnck_class_group_get_icon (WnckClassGroup *class_group);
+

Gets the icon to be used for class_group +. Since there is no way to +properly find the icon, a suboptimal heuristic is used to find it. The icon +is the first icon found by looking at all the WnckApplication for each +WnckWindow in class_group +, then at all the WnckWindow in class_group +. If +no icon was found, a fallback icon is used.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

the icon for class_group +. The caller should +reference the returned GdkPixbuf if it needs to keep +the icon around.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

wnck_class_group_get_mini_icon ()

+
GdkPixbuf *
+wnck_class_group_get_mini_icon (WnckClassGroup *class_group);
+

Gets the mini-icon to be used for class_group +. Since there is no way to +properly find the mini-icon, the same suboptimal heuristic as the one for +wnck_class_group_get_icon() is used to find it.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

the mini-icon for class_group +. The caller +should reference the returned GdkPixbuf if it needs +to keep the mini-icon around.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

wnck_class_group_get_windows ()

+
GList *
+wnck_class_group_get_windows (WnckClassGroup *class_group);
+

Gets the list of WnckWindow that are grouped in class_group +.

+
+

Parameters

+
+++++ + + + + + +

class_group

a WnckClassGroup.

 
+
+
+

Returns

+

the list of +WnckWindow grouped in class_group +, or NULL if the group contains no +window. The list should not be modified nor freed, as it is owned by +class_group +.

+

[element-type WnckWindow][transfer none]

+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

WnckClassGroup

+
typedef struct _WnckClassGroup WnckClassGroup;
+

The WnckClassGroup struct contains only private fields and should not be +directly accessed.

+
+
+
+

Signal Details

+
+

The “icon-changed” signal

+
void
+user_function (WnckClassGroup *class_group,
+               gpointer        user_data)
+

Emitted when the icon of class_group + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

class_group

the WnckClassGroup which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “name-changed” signal

+
void
+user_function (WnckClassGroup *class_group,
+               gpointer        user_data)
+

Emitted when the name of class_group + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

class_group

the WnckClassGroup which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

See Also

+

wnck_window_get_class_group()

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckPager.html b/doc/html/WnckPager.html new file mode 100644 index 0000000..7ff46d8 --- /dev/null +++ b/doc/html/WnckPager.html @@ -0,0 +1,435 @@ + + + + +WnckPager: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckPager

+

WnckPager — a pager widget, showing the content of workspaces.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GtkWidget * + +wnck_pager_new () +
+gboolean + +wnck_pager_set_orientation () +
+gboolean + +wnck_pager_set_n_rows () +
+void + +wnck_pager_set_display_mode () +
+void + +wnck_pager_set_show_all () +
+void + +wnck_pager_set_shadow_type () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWnckPager
enumWnckPagerDisplayMode
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── GtkWidget
+            ╰── WnckPager
+
+
+
+

Implemented Interfaces

+

+WnckPager implements + AtkImplementorIface and GtkBuildable.

+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

A WnckPager shows a miniature view of the workspaces, representing managed +windows by small rectangles, and allows the user to initiate various window +manager actions by manipulating these representations. The WnckPager offers +ways to move windows between workspaces and to change the current workspace.

+

Alternatively, a WnckPager can be configured to only show the names of the +workspace instead of their contents.

+

The WnckPager is also responsible for setting the layout of the workspaces. +Since only one application can be responsible for setting the layout on a +screen, the WnckPager automatically tries to obtain the manager selection +for the screen and only sets the layout if it owns the manager selection. +See wnck_pager_set_orientation() and wnck_pager_set_n_rows() to change the +layout.

+
+
+

Functions

+
+

wnck_pager_new ()

+
GtkWidget *
+wnck_pager_new (void);
+

Creates a new WnckPager. The WnckPager will show the WnckWorkspace of the +WnckScreen it is on.

+
+

Returns

+

a newly created WnckPager.

+
+
+
+
+

wnck_pager_set_orientation ()

+
gboolean
+wnck_pager_set_orientation (WnckPager *pager,
+                            GtkOrientation orientation);
+

Tries to change the orientation of the layout of WnckWorkspace on the +WnckScreen pager + is watching. Since no more than one application should +set this property of a WnckScreen at a time, setting the layout is not +guaranteed to work.

+

If orientation + is GTK_ORIENTATION_HORIZONTAL, the WnckWorkspace will be +laid out in rows, with the first WnckWorkspace in the top left corner.

+

If orientation + is GTK_ORIENTATION_VERTICAL, the WnckWorkspace will be +laid out in columns, with the first WnckWorkspace in the top left corner.

+

For example, if the layout contains one row, but the orientation of the +layout is vertical, the WnckPager will display a column of WnckWorkspace.

+

Note that setting the orientation will have an effect on the geometry +management: if orientation + is GTK_ORIENTATION_HORIZONTAL, +GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT will be used as request mode; if +orientation + is GTK_ORIENTATION_VERTICAL, GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH +will be used instead.

+

If pager + has not been added to a widget hierarchy, the call will fail +because pager + can't know the screen on which to modify the orientation.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pager

a WnckPager.

 

orientation

orientation to use for the layout of WnckWorkspace on the +WnckScreen pager +is watching.

 
+
+
+

Returns

+

TRUE if the layout of WnckWorkspace has been successfully +changed or did not need to be changed, FALSE otherwise.

+
+
+
+
+

wnck_pager_set_n_rows ()

+
gboolean
+wnck_pager_set_n_rows (WnckPager *pager,
+                       int n_rows);
+

Tries to change the number of rows in the layout of WnckWorkspace on the +WnckScreen pager + is watching. Since no more than one application should +set this property of a WnckScreen at a time, setting the layout is not +guaranteed to work.

+

If pager + has not been added to a widget hierarchy, the call will fail +because pager + can't know the screen on which to modify the layout.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pager

a WnckPager.

 

n_rows

the number of rows to use for the layout of WnckWorkspace on the +WnckScreen pager +is watching.

 
+
+
+

Returns

+

TRUE if the layout of WnckWorkspace has been successfully +changed or did not need to be changed, FALSE otherwise.

+
+
+
+
+

wnck_pager_set_display_mode ()

+
void
+wnck_pager_set_display_mode (WnckPager *pager,
+                             WnckPagerDisplayMode mode);
+

Sets the display mode for pager + to mode +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pager

a WnckPager.

 

mode

a display mode.

 
+
+
+
+
+

wnck_pager_set_show_all ()

+
void
+wnck_pager_set_show_all (WnckPager *pager,
+                         gboolean show_all_workspaces);
+

Sets pager + to display all WnckWorkspace or not, according to +show_all_workspaces +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pager

a WnckPager.

 

show_all_workspaces

whether to display all WnckWorkspace in pager +.

 
+
+
+
+
+

wnck_pager_set_shadow_type ()

+
void
+wnck_pager_set_shadow_type (WnckPager *pager,
+                            GtkShadowType shadow_type);
+

Sets the shadow type for pager + to shadow_type +. The main use of this +function is proper integration of WnckPager in panels with non-system +backgrounds.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

pager

a WnckPager.

 

shadow_type

a shadow type.

 
+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WnckPager

+
struct WnckPager;
+

The WnckPager struct contains only private fields and should not be +directly accessed.

+
+
+
+

enum WnckPagerDisplayMode

+

Mode defining what a WnckPager will display.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WNCK_PAGER_DISPLAY_NAME

+

the WnckPager will only display the names of the +workspaces.

+
 

WNCK_PAGER_DISPLAY_CONTENT

+

the WnckPager will display a representation +for each window in the workspaces.

+
 
+
+
+
+
+

See Also

+

WnckScreen

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckScreen.html b/doc/html/WnckScreen.html new file mode 100644 index 0000000..04e9e31 --- /dev/null +++ b/doc/html/WnckScreen.html @@ -0,0 +1,1923 @@ + + + + +WnckScreen: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckScreen

+

WnckScreen — an object representing a screen.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WnckScreen * + +wnck_screen_get_default () +
+WnckScreen * + +wnck_screen_get () +
+WnckScreen * + +wnck_screen_get_for_root () +
+int + +wnck_screen_get_number () +
+int + +wnck_screen_get_width () +
+int + +wnck_screen_get_height () +
+void + +wnck_screen_force_update () +
const char * + +wnck_screen_get_window_manager_name () +
+gboolean + +wnck_screen_net_wm_supports () +
+WnckWindow * + +wnck_screen_get_active_window () +
+WnckWindow * + +wnck_screen_get_previously_active_window () +
+GList * + +wnck_screen_get_windows () +
+GList * + +wnck_screen_get_windows_stacked () +
+WnckWorkspace * + +wnck_screen_get_active_workspace () +
+GList * + +wnck_screen_get_workspaces () +
+WnckWorkspace * + +wnck_screen_get_workspace () +
+int + +wnck_screen_get_workspace_count () +
+void + +wnck_screen_change_workspace_count () +
+int + +wnck_screen_try_set_workspace_layout () +
+void + +wnck_screen_release_workspace_layout () +
+void + +wnck_screen_calc_workspace_layout () +
+void + +wnck_screen_free_workspace_layout () +
+void + +wnck_screen_move_viewport () +
+gulong + +wnck_screen_get_background_pixmap () +
+gboolean + +wnck_screen_get_showing_desktop () +
+void + +wnck_screen_toggle_showing_desktop () +
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidactive-window-changedRun Last
voidactive-workspace-changedRun Last
voidapplication-closedRun Last
voidapplication-openedRun Last
voidbackground-changedRun Last
voidclass-group-closedRun Last
voidclass-group-openedRun Last
voidshowing-desktop-changedRun Last
voidviewports-changedRun Last
voidwindow-closedRun Last
voidwindow-manager-changedRun Last
voidwindow-openedRun Last
voidwindow-stacking-changedRun Last
voidworkspace-createdRun Last
voidworkspace-destroyedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWnckScreen
structWnckWorkspaceLayout
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WnckScreen
+
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckScreen represents a physical screen. A screen may consist of +multiple monitors which are merged to form a large screen area. The +WnckScreen is at the bottom of the libwnck stack of objects: WnckWorkspace +objects exist a WnckScreen and WnckWindow objects are displayed on a +WnckWorkspace.

+

The WnckScreen corresponds to the notion of

+GdkScreen in GDK. +

The WnckScreen objects are always owned by libwnck and must not be +referenced or unreferenced.

+
+
+

Functions

+
+

wnck_screen_get_default ()

+
WnckScreen *
+wnck_screen_get_default (void);
+

Gets the default WnckScreen on the default display.

+
+

Returns

+

the default WnckScreen. The returned +WnckScreen is owned by libwnck and must not be referenced or unreferenced. This +can return NULL if not on X11.

+

[transfer none][nullable]

+
+
+
+
+

wnck_screen_get ()

+
WnckScreen *
+wnck_screen_get (int index);
+

Gets the WnckScreen for a given screen on the default display.

+
+

Parameters

+
+++++ + + + + + +

index

screen number, starting from 0.

 
+
+
+

Returns

+

the WnckScreen for screen index +, or NULL +if no such screen exists. The returned WnckScreen is owned by libwnck and +must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_screen_get_for_root ()

+
WnckScreen *
+wnck_screen_get_for_root (gulong root_window_id);
+

Gets the WnckScreen for the root window at root_window_id +, or +NULL if no WnckScreen exists for this root window.

+

This function does not work if wnck_screen_get() was not called for the +sought WnckScreen before, and returns NULL.

+
+

Parameters

+
+++++ + + + + + +

root_window_id

an X window ID.

 
+
+
+

Returns

+

the WnckScreen for the root window at +root_window_id +, or NULL. The returned WnckScreen is owned by libwnck and +must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_screen_get_number ()

+
int
+wnck_screen_get_number (WnckScreen *screen);
+

Gets the index of screen + on the display to which it belongs. The first +WnckScreen has an index of 0.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the index of space +on screen +, or -1 on errors.

+
+

Since: 2.20

+
+
+
+

wnck_screen_get_width ()

+
int
+wnck_screen_get_width (WnckScreen *screen);
+

Gets the width of screen +.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the width of screen +.

+
+
+
+
+

wnck_screen_get_height ()

+
int
+wnck_screen_get_height (WnckScreen *screen);
+

Gets the height of screen +.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the height of screen +.

+
+
+
+
+

wnck_screen_force_update ()

+
void
+wnck_screen_force_update (WnckScreen *screen);
+

Synchronously and immediately updates the list of WnckWindow on screen +. +This bypasses the standard update mechanism, where the list of WnckWindow +is updated in the idle loop.

+

This is usually a bad idea for both performance and correctness reasons (to +get things right, you need to write model-view code that tracks changes, not +get a static list of open windows). However, this function can be useful for +small applications that just do something and then exit.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+
+
+

wnck_screen_get_window_manager_name ()

+
const char *
+wnck_screen_get_window_manager_name (WnckScreen *screen);
+

Gets the name of the window manager.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the name of the window manager, or NULL if the window manager +does not comply with the EWMH +specification.

+
+

Since: 2.20

+
+
+
+

wnck_screen_net_wm_supports ()

+
gboolean
+wnck_screen_net_wm_supports (WnckScreen *screen,
+                             const char *atom);
+

Gets whether the window manager for screen + supports a certain hint from +the Extended +Window Manager Hints specification (EWMH).

+

When using this function, keep in mind that the window manager can change +over time; so you should not use this function in a way that impacts +persistent application state. A common bug is that your application can +start up before the window manager does when the user logs in, and before +the window manager starts wnck_screen_net_wm_supports() will return FALSE +for every property.

+

See also gdk_x11_screen_supports_net_wm_hint() in GDK.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

a WnckScreen.

 

atom

a property atom.

 
+
+
+

Returns

+

TRUE if the window manager for screen +supports the atom +hint, FALSE otherwise.

+
+
+
+
+

wnck_screen_get_active_window ()

+
WnckWindow *
+wnck_screen_get_active_window (WnckScreen *screen);
+

Gets the active WnckWindow on screen +. May return NULL sometimes, since +not all window managers guarantee that a window is always active.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the active WnckWindow on screen +, or NULL. +The returned WnckWindow is owned by libwnck and must not be referenced or +unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_screen_get_previously_active_window ()

+
WnckWindow *
+wnck_screen_get_previously_active_window
+                               (WnckScreen *screen);
+

Gets the previously active WnckWindow on screen +. May return NULL +sometimes, since not all window managers guarantee that a window is always +active.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the previously active WnckWindow on screen +, +or NULL. The returned WnckWindow is owned by libwnck and must not be +referenced or unreferenced.

+

[transfer none]

+
+

Since: 2.8

+
+
+
+

wnck_screen_get_windows ()

+
GList *
+wnck_screen_get_windows (WnckScreen *screen);
+

Gets the list of WnckWindow on screen +. The list is not in a defined +order, but should be "stable" (windows should not be reordered in it). +However, the stability of the list is established by the window manager, so +don't blame libwnck if it breaks down.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the list of +WnckWindow on screen +, or NULL if there is no window on screen +. The list +should not be modified nor freed, as it is owned by screen +.

+

[element-type WnckWindow][transfer none]

+
+
+
+
+

wnck_screen_get_windows_stacked ()

+
GList *
+wnck_screen_get_windows_stacked (WnckScreen *screen);
+

Gets the list of WnckWindow on screen + in bottom-to-top order.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the list of +WnckWindow in stacking order on screen +, or NULL if there is no window on +screen +. The list should not be modified nor freed, as it is owned by +screen +.

+

[element-type WnckWindow][transfer none]

+
+
+
+
+

wnck_screen_get_active_workspace ()

+
WnckWorkspace *
+wnck_screen_get_active_workspace (WnckScreen *screen);
+

Gets the active WnckWorkspace on screen +. May return NULL sometimes, +if libwnck is in a weird state due to the asynchronous nature of the +interaction with the window manager.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the active WnckWorkspace on screen +, or +NULL. The returned WnckWorkspace is owned by libwnck and must not be +referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_screen_get_workspaces ()

+
GList *
+wnck_screen_get_workspaces (WnckScreen *screen);
+

Gets the list of WnckWorkspace on screen +. The list is ordered: the +first element in the list is the first WnckWorkspace, etc..

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the list of +WnckWorkspace on screen +. The list should not be modified nor freed, as it +is owned by screen +.

+

[element-type WnckWorkspace][transfer none]

+
+

Since: 2.20

+
+
+
+

wnck_screen_get_workspace ()

+
WnckWorkspace *
+wnck_screen_get_workspace (WnckScreen *screen,
+                           int workspace);
+

Gets the WnckWorkspace numbered workspace + on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

a WnckScreen.

 

workspace

a workspace index, starting from 0.

 
+
+
+

Returns

+

the WnckWorkspace numbered workspace +on +screen +, or NULL if no such workspace exists. The returned WnckWorkspace +is owned by libwnck and must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_screen_get_workspace_count ()

+
int
+wnck_screen_get_workspace_count (WnckScreen *screen);
+

Gets the number of WnckWorkspace on screen +.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the number of WnckWorkspace on screen +.

+
+
+
+
+

wnck_screen_change_workspace_count ()

+
void
+wnck_screen_change_workspace_count (WnckScreen *screen,
+                                    int count);
+

Asks the window manager to change the number of WnckWorkspace on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

a WnckScreen.

 

count

the number of WnckWorkspace to request.

 
+
+

Since: 2.2

+
+
+
+

wnck_screen_try_set_workspace_layout ()

+
int
+wnck_screen_try_set_workspace_layout (WnckScreen *screen,
+                                      int current_token,
+                                      int rows,
+                                      int columns);
+

Tries to modify the layout of WnckWorkspace on screen +. To do this, tries +to acquire ownership of the layout. If the current process is the owner of +the layout, current_token + is used to determine if the caller is the owner +(there might be more than one part of the same process trying to set the +layout). Since no more than one application should set this property of +screen + at a time, setting the layout is not guaranteed to work.

+

If rows + is 0, the actual number of rows will be determined based on +columns + and the number of WnckWorkspace. If columns + is 0, the actual +number of columns will be determined based on rows + and the number of +WnckWorkspace. rows + and columns + must not be 0 at the same time.

+

You have to release the ownership of the layout with +wnck_screen_release_workspace_layout() when you do not need it anymore.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

screen

a WnckScreen.

 

current_token

a token. Use 0 if you do not called +wnck_screen_try_set_workspace_layout() before, or if you did not keep the +old token.

 

rows

the number of rows to use for the WnckWorkspace layout.

 

columns

the number of columns to use for the WnckWorkspace layout.

 
+
+
+

Returns

+

a token to use for future calls to +wnck_screen_try_set_workspace_layout() and to +wnck_screen_release_workspace_layout(), or 0 if the layout could not be set.

+
+
+
+
+

wnck_screen_release_workspace_layout ()

+
void
+wnck_screen_release_workspace_layout (WnckScreen *screen,
+                                      int current_token);
+

Releases the ownership of the layout of WnckWorkspace on screen +. +current_token + is used to verify that the caller is the owner of the layout. +If the verification fails, nothing happens.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

a WnckScreen.

 

current_token

the token obtained through +wnck_screen_try_set_workspace_layout().

 
+
+
+
+
+

wnck_screen_calc_workspace_layout ()

+
void
+wnck_screen_calc_workspace_layout (WnckScreen *screen,
+                                   int num_workspaces,
+                                   int space_index,
+                                   WnckWorkspaceLayout *layout);
+

wnck_screen_calc_workspace_layout has been deprecated since version 2.20 and should not be used in newly-written code.

+

Calculates the layout of WnckWorkspace, with additional information like +the row and column of the WnckWorkspace with index space_index +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

screen

a WnckScreen.

 

num_workspaces

the number of WnckWorkspace on screen +, or -1 to let +wnck_screen_calc_workspace_layout() find this number.

 

space_index

the index of a WnckWorkspace.

 

layout

return location for the layout of WnckWorkspace with additional +information.

 
+
+

Since: 2.12

+
+
+
+

wnck_screen_free_workspace_layout ()

+
void
+wnck_screen_free_workspace_layout (WnckWorkspaceLayout *layout);
+

wnck_screen_free_workspace_layout has been deprecated since version 2.20 and should not be used in newly-written code.

+

Frees the content of layout +. This does not free layout + itself, so you +might want to free layout + yourself after calling this.

+
+

Parameters

+
+++++ + + + + + +

layout

a WnckWorkspaceLayout.

 
+
+

Since: 2.12

+
+
+
+

wnck_screen_move_viewport ()

+
void
+wnck_screen_move_viewport (WnckScreen *screen,
+                           int x,
+                           int y);
+

Asks the window manager to move the viewport of the current WnckWorkspace +on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

a WnckScreen.

 

x

X offset in pixels of viewport.

 

y

Y offset in pixels of viewport.

 
+
+

Since: 2.4

+
+
+
+

wnck_screen_get_background_pixmap ()

+
gulong
+wnck_screen_get_background_pixmap (WnckScreen *screen);
+

Gets the X window ID of the background pixmap of screen +.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

the X window ID of the background pixmap of screen +.

+
+
+
+
+

wnck_screen_get_showing_desktop ()

+
gboolean
+wnck_screen_get_showing_desktop (WnckScreen *screen);
+

Gets whether screen + is in the "showing the desktop" mode. This mode is +changed when a “showing-desktop-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

screen

a WnckScreen.

 
+
+
+

Returns

+

TRUE if window +is fullscreen, FALSE otherwise.

+
+

Since: 2.2

+
+
+
+

wnck_screen_toggle_showing_desktop ()

+
void
+wnck_screen_toggle_showing_desktop (WnckScreen *screen,
+                                    gboolean show);
+

Asks the window manager to set the "showing the desktop" mode on screen + +according to show +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

a WnckScreen.

 

show

whether to activate the "showing the desktop" mode on screen +.

 
+
+

Since: 2.2

+
+
+
+

Types and Values

+
+

struct WnckScreen

+
struct WnckScreen;
+

The WnckScreen struct contains only private fields and should not be +directly accessed.

+
+
+
+

struct WnckWorkspaceLayout

+
struct WnckWorkspaceLayout {
+  int rows;
+  int cols;
+  int *grid;
+  int grid_area;
+  int current_row;
+  int current_col;
+};
+
+

WnckWorkspaceLayout has been deprecated since version 2.20 and should not be used in newly-written code.

+

The WnckWorkspaceLayout struct contains information about the layout of +WnckWorkspace on a WnckScreen, and the exact position of a specific +WnckWorkspace.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

int rows;

number of rows in the layout grid.

 

int cols;

number of columns in the layout grid.

 

int *grid;

array of size grid_area +containing the index (starting from 0) of +the WnckWorkspace for each position in the layout grid, or -1 if the +position does not correspond to any WnckWorkspace.

 

int grid_area;

size of the grid containing all WnckWorkspace. This can be +bigger than the number of WnckWorkspace because the grid might not be +filled.

 

int current_row;

row of the specific WnckWorkspace, starting from 0.

 

int current_col;

column of the specific WnckWorkspace, starting from 0.

 
+
+

Since: 2.12

+
+
+
+

Signal Details

+
+

The “active-window-changed” signal

+
void
+user_function (WnckScreen *screen,
+               WnckWindow *previously_active_window,
+               gpointer    user_data)
+

Emitted when the active window on screen + has changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

previously_active_window

the previously active WnckWindow before this +change.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “active-workspace-changed” signal

+
void
+user_function (WnckScreen    *screen,
+               WnckWorkspace *previously_active_space,
+               gpointer       user_data)
+

Emitted when the active workspace on screen + has changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

previously_active_space

the previously active WnckWorkspace before this +change.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “application-closed” signal

+
void
+user_function (WnckScreen      *screen,
+               WnckApplication *app,
+               gpointer         user_data)
+

Emitted when a WnckApplication is closed on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

app

the closed WnckApplication.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “application-opened” signal

+
void
+user_function (WnckScreen      *screen,
+               WnckApplication *app,
+               gpointer         user_data)
+

Emitted when a new WnckApplication is opened on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

app

the opened WnckApplication.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “background-changed” signal

+
void
+user_function (WnckScreen *screen,
+               gpointer    user_data)
+

Emitted when the background on the root window of screen + has changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “class-group-closed” signal

+
void
+user_function (WnckScreen     *screen,
+               WnckClassGroup *class_group,
+               gpointer        user_data)
+

Emitted when a WnckClassGroup is closed on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

class_group

the closed WnckClassGroup.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+

The “class-group-opened” signal

+
void
+user_function (WnckScreen     *screen,
+               WnckClassGroup *class_group,
+               gpointer        user_data)
+

Emitted when a new WnckClassGroup is opened on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

class_group

the opened WnckClassGroup.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+

The “showing-desktop-changed” signal

+
void
+user_function (WnckScreen *screen,
+               gpointer    user_data)
+

Emitted when "showing the desktop" mode of screen + is toggled.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+

The “viewports-changed” signal

+
void
+user_function (WnckScreen *screen,
+               gpointer    user_data)
+

Emitted when a viewport position has changed in a WnckWorkspace of +screen + or when a WnckWorkspace of screen + gets or loses its viewport.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+

The “window-closed” signal

+
void
+user_function (WnckScreen *screen,
+               WnckWindow *window,
+               gpointer    user_data)
+

Emitted when a WnckWindow is closed on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

window

the closed WnckWindow.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “window-manager-changed” signal

+
void
+user_function (WnckScreen *screen,
+               gpointer    user_data)
+

Emitted when the window manager on screen + has changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 2.20

+
+
+
+

The “window-opened” signal

+
void
+user_function (WnckScreen *screen,
+               WnckWindow *window,
+               gpointer    user_data)
+

Emitted when a new WnckWindow is opened on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

window

the opened WnckWindow.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “window-stacking-changed” signal

+
void
+user_function (WnckScreen *screen,
+               gpointer    user_data)
+

Emitted when the stacking order of WnckWindow on screen + has changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “workspace-created” signal

+
void
+user_function (WnckScreen    *screen,
+               WnckWorkspace *space,
+               gpointer       user_data)
+

Emitted when a WnckWorkspace is created on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

space

the workspace that has been created.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “workspace-destroyed” signal

+
void
+user_function (WnckScreen    *screen,
+               WnckWorkspace *space,
+               gpointer       user_data)
+

Emitted when a WnckWorkspace is destroyed on screen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

screen

the WnckScreen which emitted the signal.

 

space

the workspace that has been destroyed.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

See Also

+

WnckWindow, WnckWorkspace

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckSelector.html b/doc/html/WnckSelector.html new file mode 100644 index 0000000..a50ed82 --- /dev/null +++ b/doc/html/WnckSelector.html @@ -0,0 +1,146 @@ + + + + +WnckSelector: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckSelector

+

WnckSelector — a window selector widget, showing the list of windows as +a menu.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + +
+GtkWidget * + +wnck_selector_new () +
+
+
+

Types and Values

+
++++ + + + + +
structWnckSelector
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── GtkWidget
+            ╰── GtkContainer
+                ╰── GtkMenuShell
+                    ╰── GtkMenuBar
+                        ╰── WnckSelector
+
+
+
+

Implemented Interfaces

+

+WnckSelector implements + AtkImplementorIface and GtkBuildable.

+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckSelector represents client windows on a screen as a menu, where +menu items are labelled with the window titles and icons. Activating a menu +item activates the represented window.

+

The WnckSelector will automatically detect the screen it is on, and will +represent windows of this screen only.

+
+
+

Functions

+
+

wnck_selector_new ()

+
GtkWidget *
+wnck_selector_new (void);
+

Creates a new WnckSelector. The WnckSelector will list WnckWindow of the +WnckScreen it is on.

+
+

Returns

+

a newly created WnckSelector.

+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

struct WnckSelector

+
struct WnckSelector;
+

The WnckSelector struct contains only private fields and should not be +directly accessed.

+
+
+
+

See Also

+

WnckTasklist

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckTasklist.html b/doc/html/WnckTasklist.html new file mode 100644 index 0000000..5f7f8bb --- /dev/null +++ b/doc/html/WnckTasklist.html @@ -0,0 +1,679 @@ + + + + +WnckTasklist: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckTasklist

+

WnckTasklist — a tasklist widget, showing the list of windows as a list +of buttons.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+GtkWidget * + +wnck_tasklist_new () +
+void + +wnck_tasklist_set_grouping () +
+void + +wnck_tasklist_set_grouping_limit () +
+void + +wnck_tasklist_set_include_all_workspaces () +
+void + +wnck_tasklist_set_switch_workspace_on_unminimize () +
+void + +wnck_tasklist_set_button_relief () +
+GdkPixbuf * + +(*WnckLoadIconFunction) () +
+void + +wnck_tasklist_set_icon_loader () +
const int * + +wnck_tasklist_get_size_hint_list () +
+
+
+

Style Properties

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +
gfloatfade-loop-timeRead
gintfade-max-loopsRead
gfloatfade-opacityRead
gbooleanfade-overlay-rectRead
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
structWnckTasklist
enumWnckTasklistGroupingType
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── GtkWidget
+            ╰── GtkContainer
+                ╰── WnckTasklist
+
+
+
+

Implemented Interfaces

+

+WnckTasklist implements + AtkImplementorIface and GtkBuildable.

+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckTasklist represents client windows on a screen as a list of buttons +labelled with the window titles and icons. Pressing a button can activate or +minimize the represented window, and other typical actions are available +through a popup menu. Windows needing attention can also be distinguished +by a fade effect on the buttons representing them, to help attract the +user's attention.

+

The behavior of the WnckTasklist can be customized in various ways, like +grouping multiple windows of the same application in one button (see +wnck_tasklist_set_grouping() and wnck_tasklist_set_grouping_limit()), or +showing windows from all workspaces (see +wnck_tasklist_set_include_all_workspaces()). The fade effect for windows +needing attention can be controlled by various style properties like +“fade-max-loops” and “fade-opacity”.

+

The tasklist also acts as iconification destination. If there are multiple +WnckTasklist or other applications setting the iconification destination +for windows, the iconification destinations might not be consistent among +windows and it is not possible to determine which WnckTasklist (or which +other application) owns this propriety.

+
+
+

Functions

+
+

wnck_tasklist_new ()

+
GtkWidget *
+wnck_tasklist_new (void);
+

Creates a new WnckTasklist. The WnckTasklist will list WnckWindow of the +WnckScreen it is on.

+
+

Returns

+

a newly created WnckTasklist.

+
+
+
+
+

wnck_tasklist_set_grouping ()

+
void
+wnck_tasklist_set_grouping (WnckTasklist *tasklist,
+                            WnckTasklistGroupingType grouping);
+

Sets the grouping policy for tasklist + to grouping +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

grouping

a grouping policy.

 
+
+
+
+
+

wnck_tasklist_set_grouping_limit ()

+
void
+wnck_tasklist_set_grouping_limit (WnckTasklist *tasklist,
+                                  gint limit);
+

Sets the maximum size of buttons in tasklist + before tasklist + tries to +group WnckWindow in the same WnckApplication in only one button. This +limit is valid only when the grouping policy of tasklist + is +WNCK_TASKLIST_AUTO_GROUP.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

limit

a size in pixels.

 
+
+
+
+
+

wnck_tasklist_set_include_all_workspaces ()

+
void
+wnck_tasklist_set_include_all_workspaces
+                               (WnckTasklist *tasklist,
+                                gboolean include_all_workspaces);
+

Sets tasklist + to display WnckWindow from all WnckWorkspace or not, +according to include_all_workspaces +.

+

Note that if the active WnckWorkspace has a viewport and if +include_all_workspaces + is FALSE, then only the WnckWindow visible in the +viewport are displayed in tasklist +. The rationale for this is that the +viewport is generally used to implement workspace-like behavior. A +side-effect of this is that, when using multiple WnckWorkspace with +viewport, it is not possible to show all WnckWindow from a WnckWorkspace +(even those that are not visible in the viewport) in tasklist + without +showing all WnckWindow from all WnckWorkspace.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

include_all_workspaces

whether to display WnckWindow from all +WnckWorkspace in tasklist +.

 
+
+
+
+
+

wnck_tasklist_set_switch_workspace_on_unminimize ()

+
void
+wnck_tasklist_set_switch_workspace_on_unminimize
+                               (WnckTasklist *tasklist,
+                                gboolean switch_workspace_on_unminimize);
+

Sets tasklist + to activate or not the WnckWorkspace a WnckWindow is on +when unminimizing it, according to switch_workspace_on_unminimize +.

+

FIXME: does it still work?

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

switch_workspace_on_unminimize

whether to activate the WnckWorkspace a +WnckWindow is on when unminimizing it.

 
+
+
+
+
+

wnck_tasklist_set_button_relief ()

+
void
+wnck_tasklist_set_button_relief (WnckTasklist *tasklist,
+                                 GtkReliefStyle relief);
+

Sets the relief type of the buttons in tasklist + to relief +. The main use of +this function is proper integration of WnckTasklist in panels with +non-system backgrounds.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

relief

a relief type.

 
+
+

Since: 2.12

+
+
+
+

WnckLoadIconFunction ()

+
GdkPixbuf *
+(*WnckLoadIconFunction) (const char *icon_name,
+                         int size,
+                         unsigned int flags,
+                         void *data);
+

Specifies the type of function passed to wnck_tasklist_set_icon_loader().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

icon_name

an icon name as in the Icon field in a .desktop file for the +icon to load.

 

size

the desired icon size.

 

flags

not defined to do anything yet.

 

data

data passed to the function, set when the WnckLoadIconFunction has +been set for the WnckTasklist.

 
+
+
+

Returns

+

it should return a GdkPixbuf of icon_name +at size size +, or NULL if no icon for icon_name +at size size +could be +loaded.

+
+

Since: 2.2

+
+
+
+

wnck_tasklist_set_icon_loader ()

+
void
+wnck_tasklist_set_icon_loader (WnckTasklist *tasklist,
+                               WnckLoadIconFunction load_icon_func,
+                               void *data,
+                               GDestroyNotify free_data_func);
+

Sets a function to be used for loading icons.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

tasklist

a WnckTasklist

 

load_icon_func

icon loader function

 

data

data for icon loader function

 

free_data_func

function to free the data

 
+
+

Since: 2.2

+
+
+
+

wnck_tasklist_get_size_hint_list ()

+
const int *
+wnck_tasklist_get_size_hint_list (WnckTasklist *tasklist,
+                                  int *n_elements);
+

Since a WnckTasklist does not have a fixed size (WnckWindow can be grouped +when needed, for example), the standard size request mechanism in GTK+ is +not enough to announce what sizes can be used by tasklist +. The size hints +mechanism is a solution for this. See panel_applet_set_size_hints() for more +information.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

tasklist

a WnckTasklist.

 

n_elements

return location for the number of elements in the array +returned by this function. This number should always be pair.

 
+
+
+

Returns

+

a list of size hints that can be used to allocate an +appropriate size for tasklist +.

+
+
+
+
+

Types and Values

+
+

struct WnckTasklist

+
struct WnckTasklist;
+

The WnckTasklist struct contains only private fields and should not be +directly accessed.

+
+
+
+

enum WnckTasklistGroupingType

+

Type defining the policy of the WnckTasklist for grouping multiple +WnckWindow of the same WnckApplication.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + +

WNCK_TASKLIST_NEVER_GROUP

+

never group multiple WnckWindow of the same +WnckApplication.

+
 

WNCK_TASKLIST_AUTO_GROUP

+

group multiple WnckWindow of the same +WnckApplication for some WnckApplication, when there is not enough place +to have a good-looking list of all WnckWindow.

+
 

WNCK_TASKLIST_ALWAYS_GROUP

+

always group multiple WnckWindow of the same +WnckApplication, for all WnckApplication.

+
 
+
+
+
+
+

Style Property Details

+
+

The “fade-loop-time” style property

+
  “fade-loop-time”           gfloat
+

When a window needs attention, a fade effect is drawn on the button +representing the window. This property controls the time one loop of this +fade effect takes, in seconds.

+

Flags: Read

+

Allowed values: [0.2,10]

+

Default value: 3

+

Since: 2.16

+
+
+
+

The “fade-max-loops” style property

+
  “fade-max-loops”           gint
+

When a window needs attention, a fade effect is drawn on the button +representing the window. This property controls the number of loops for +this fade effect. 0 means the button will only fade to the final color.

+

Flags: Read

+

Allowed values: [0,50]

+

Default value: 5

+

Since: 2.20

+
+
+
+

The “fade-opacity” style property

+
  “fade-opacity”             gfloat
+

When a window needs attention, a fade effect is drawn on the button +representing the window. This property controls the final opacity that +will be reached by the fade effect.

+

Flags: Read

+

Allowed values: [0,1]

+

Default value: 0.8

+

Since: 2.16

+
+
+
+

The “fade-overlay-rect” style property

+
  “fade-overlay-rect”        gboolean
+

When a window needs attention, a fade effect is drawn on the button +representing the window. Set this property to TRUE to enable a +compatibility mode for pixbuf engine themes that cannot react to color +changes. If enabled, a rectangle with the correct color will be drawn on +top of the button.

+

Flags: Read

+

Default value: TRUE

+

Since: 2.16

+
+
+
+

See Also

+

WnckScreen, WnckSelector

+
+
+ + + \ No newline at end of file diff --git a/doc/html/WnckWindow.html b/doc/html/WnckWindow.html new file mode 100644 index 0000000..df9e6b1 --- /dev/null +++ b/doc/html/WnckWindow.html @@ -0,0 +1,4105 @@ + + + + +WnckWindow: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckWindow

+

WnckWindow — an object representing a window.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WnckWindow * + +wnck_window_get () +
+WnckScreen * + +wnck_window_get_screen () +
+gboolean + +wnck_window_has_name () +
const char * + +wnck_window_get_name () +
+gboolean + +wnck_window_has_icon_name () +
const char * + +wnck_window_get_icon_name () +
+gboolean + +wnck_window_get_icon_is_fallback () +
+GdkPixbuf * + +wnck_window_get_icon () +
+GdkPixbuf * + +wnck_window_get_mini_icon () +
+WnckApplication * + +wnck_window_get_application () +
+WnckWindow * + +wnck_window_get_transient () +
+gulong + +wnck_window_get_group_leader () +
+gulong + +wnck_window_get_xid () +
+WnckClassGroup * + +wnck_window_get_class_group () +
const char * + +wnck_window_get_class_group_name () +
const char * + +wnck_window_get_class_instance_name () +
const char * + +wnck_window_get_session_id () +
const char * + +wnck_window_get_session_id_utf8 () +
+int + +wnck_window_get_pid () +
+gint + +wnck_window_get_sort_order () +
+void + +wnck_window_set_sort_order () +
+WnckWindowType + +wnck_window_get_window_type () +
+void + +wnck_window_set_window_type () +
+WnckWindowState + +wnck_window_get_state () +
+gboolean + +wnck_window_is_minimized () +
+gboolean + +wnck_window_is_maximized_horizontally () +
+gboolean + +wnck_window_is_maximized_vertically () +
+gboolean + +wnck_window_is_maximized () +
+gboolean + +wnck_window_is_shaded () +
+gboolean + +wnck_window_is_pinned () +
+gboolean + +wnck_window_is_sticky () +
+gboolean + +wnck_window_is_above () +
+gboolean + +wnck_window_is_below () +
+gboolean + +wnck_window_is_skip_pager () +
+gboolean + +wnck_window_is_skip_tasklist () +
+gboolean + +wnck_window_is_fullscreen () +
+gboolean + +wnck_window_needs_attention () +
+gboolean + +wnck_window_or_transient_needs_attention () +
+WnckWindowActions + +wnck_window_get_actions () +
+void + +wnck_window_minimize () +
+void + +wnck_window_unminimize () +
+void + +wnck_window_maximize_horizontally () +
+void + +wnck_window_unmaximize_horizontally () +
+void + +wnck_window_maximize_vertically () +
+void + +wnck_window_unmaximize_vertically () +
+void + +wnck_window_maximize () +
+void + +wnck_window_unmaximize () +
+void + +wnck_window_shade () +
+void + +wnck_window_unshade () +
+void + +wnck_window_pin () +
+void + +wnck_window_unpin () +
+void + +wnck_window_stick () +
+void + +wnck_window_unstick () +
+void + +wnck_window_make_above () +
+void + +wnck_window_unmake_above () +
+void + +wnck_window_make_below () +
+void + +wnck_window_unmake_below () +
+void + +wnck_window_set_skip_pager () +
+void + +wnck_window_set_skip_tasklist () +
+void + +wnck_window_set_fullscreen () +
+void + +wnck_window_close () +
+WnckWorkspace * + +wnck_window_get_workspace () +
+gboolean + +wnck_window_is_on_workspace () +
+gboolean + +wnck_window_is_visible_on_workspace () +
+void + +wnck_window_move_to_workspace () +
+gboolean + +wnck_window_is_in_viewport () +
+void + +wnck_window_activate () +
+gboolean + +wnck_window_is_active () +
+gboolean + +wnck_window_is_most_recently_activated () +
+void + +wnck_window_activate_transient () +
+gboolean + +wnck_window_transient_is_most_recently_activated () +
+void + +wnck_window_set_icon_geometry () +
+void + +wnck_window_get_client_window_geometry () +
+void + +wnck_window_get_geometry () +
+void + +wnck_window_set_geometry () +
+void + +wnck_window_keyboard_move () +
+void + +wnck_window_keyboard_size () +
+
+
+

Signals

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
voidactions-changedRun Last
voidclass-changedRun Last
voidgeometry-changedRun Last
voidicon-changedRun Last
voidname-changedRun Last
voidrole-changedRun Last
voidstate-changedRun Last
voidtype-changedRun Last
voidworkspace-changedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 WnckWindow
enumWnckWindowType
enumWnckWindowState
enumWnckWindowActions
enumWnckWindowGravity
enumWnckWindowMoveResizeMask
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WnckWindow
+
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckWindow objects are always owned by libwnck and must not be +referenced or unreferenced.

+
+
+

Functions

+
+

wnck_window_get ()

+
WnckWindow *
+wnck_window_get (gulong xwindow);
+

Gets a preexisting WnckWindow for the X window xwindow +. This will not +create a WnckWindow if none exists. The function is robust against bogus +window IDs.

+
+

Parameters

+
+++++ + + + + + +

xwindow

an X window ID.

 
+
+
+

Returns

+

the WnckWindow for xwindow +. The returned +WnckWindow is owned by libwnck and must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_window_get_screen ()

+
WnckScreen *
+wnck_window_get_screen (WnckWindow *window);
+

Gets the WnckScreen window + is on.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the WnckScreen window +is on. The returned +WnckScreen is owned by libwnck and must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_window_has_name ()

+
gboolean
+wnck_window_has_name (WnckWindow *window);
+

Checks whether or not window + has a name. wnck_window_get_name() +will always return some value, even if window + has no name set; +wnck_window_has_name() can be used to tell if that name is +real or not.

+

For icons titles, use wnck_window_has_icon_name() instead.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if wnck_window_get_name() returns window +'s +name, FALSE if it returns a fallback name.

+
+

Since: 2.16

+
+
+
+

wnck_window_get_name ()

+
const char *
+wnck_window_get_name (WnckWindow *window);
+

Gets the name of window +, as it should be displayed in a pager +or tasklist. Always returns some value, even if window + has no name +set; use wnck_window_has_name() if you need to know whether the returned +name is "real" or not.

+

For icons titles, use wnck_window_get_icon_name() instead.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the name of window +, or a fallback name if no name is +available.

+
+
+
+
+

wnck_window_has_icon_name ()

+
gboolean
+wnck_window_has_icon_name (WnckWindow *window);
+

Checks whether or not window + has an icon name. +wnck_window_get_icon_name() will always return some value, even if +window + has no icon name set; wnck_window_has_icon_name() can +be used to tell if that icon name is real or not.

+

(Note that if wnck_window_has_icon_name() returns FALSE, but +wnck_window_has_name() returns TRUE, then the name returned by +wnck_window_get_icon_name() is window +'s name. Only when both +methods return FALSE does wnck_window_get_icon_name() return a +generic fallback name.)

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow

 
+
+
+

Returns

+

TRUE if wnck_window_get_icon_name() returns +window +'s icon name, FALSE if it returns a fallback name.

+
+

Since: 2.16

+
+
+
+

wnck_window_get_icon_name ()

+
const char *
+wnck_window_get_icon_name (WnckWindow *window);
+

Gets the icon name of window +, as it should be displayed for an icon +(minimized state). Always returns some value, even if window + has no icon +name set; use wnck_window_has_icon_name() if you need to know whether the +returned icon name is "real" or not.

+

Contrast with wnck_window_get_name(), which returns window +'s +title, not its icon title.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow

 
+
+
+

Returns

+

the icon name of window +, or a fallback icon name if no icon +name is available.

+
+
+
+
+

wnck_window_get_icon_is_fallback ()

+
gboolean
+wnck_window_get_icon_is_fallback (WnckWindow *window);
+

Gets whether a default fallback icon is used for window + (because none +was set on window +).

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if the icon for window +is a fallback, FALSE otherwise.

+
+
+
+
+

wnck_window_get_icon ()

+
GdkPixbuf *
+wnck_window_get_icon (WnckWindow *window);
+

Gets the icon to be used for window +. If no icon was found, a fallback +icon is used. wnck_window_get_icon_is_fallback() can be used to tell if the +icon is the fallback icon.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the icon for window +. The caller should +reference the returned GdkPixbuf if it needs to keep +the icon around.

+

[transfer none]

+
+
+
+
+

wnck_window_get_mini_icon ()

+
GdkPixbuf *
+wnck_window_get_mini_icon (WnckWindow *window);
+

Gets the mini-icon to be used for window +. If no mini-icon was found, a +fallback mini-icon is used. wnck_window_get_icon_is_fallback() can be used +to tell if the mini-icon is the fallback mini-icon.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the mini-icon for window +. The caller should +reference the returned GdkPixbuf if it needs to keep +the icon around.

+

[transfer none]

+
+
+
+
+

wnck_window_get_application ()

+
WnckApplication *
+wnck_window_get_application (WnckWindow *window);
+

Gets the WnckApplication to which window + belongs.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the WnckApplication to which window +belongs. +The returned WnckApplication is owned by libwnck and must not be referenced +or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_window_get_transient ()

+
WnckWindow *
+wnck_window_get_transient (WnckWindow *window);
+

Gets the WnckWindow for which window + is transient.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the WnckWindow for which window +is +transient, or NULL if window +is not transient for any WnckWindow. +The returned WnckWindow is owned by libwnck and must not be referenced or +unreferenced.

+

[transfer none]

+
+

Since: 2.12

+
+
+
+

wnck_window_get_group_leader ()

+
gulong
+wnck_window_get_group_leader (WnckWindow *window);
+

Gets the group leader of the group of windows to which window + belongs.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the group leader of the group of windows to which window +belongs, or the X window ID of window +if window +does not belong to any +group.

+
+
+
+
+

wnck_window_get_xid ()

+
gulong
+wnck_window_get_xid (WnckWindow *window);
+

Gets the X window ID of window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the X window ID of window +.

+
+
+
+
+

wnck_window_get_class_group ()

+
WnckClassGroup *
+wnck_window_get_class_group (WnckWindow *window);
+

Gets the WnckClassGroup to which window + belongs.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the WnckClassGroup to which window +belongs. +The returned WnckClassGroup is owned by libwnck and must not be referenced +or unreferenced.

+

[transfer none]

+
+

Since: 2.2

+
+
+
+

wnck_window_get_class_group_name ()

+
const char *
+wnck_window_get_class_group_name (WnckWindow *window);
+

Gets the class group name from the WM_CLASS Property +for window +.

+

The class group name is also the identifier name of the WnckClassGroup to +which window + belongs.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the class group name for window +, or NULL if window +belongs +to no class group.

+
+
+
+
+

wnck_window_get_class_instance_name ()

+
const char *
+wnck_window_get_class_instance_name (WnckWindow *window);
+

Gets the class instance name from the WM_CLASS Property +for window +.

+

The class instance name allows to differentiate windows belonging to the +same class group, so that they can use different resources.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the class instance name for window +, or NULL if window +has +no class instance.

+
+
+
+
+

wnck_window_get_session_id ()

+
const char *
+wnck_window_get_session_id (WnckWindow *window);
+

Gets the session ID for window + in Latin-1 encoding. +NOTE: this is invalid UTF-8. You can't display this +string in a GTK+ widget without converting to UTF-8. +See wnck_window_get_session_id_utf8().

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the session ID for window +in Latin-1, or NULL if window +has +no session ID.

+
+
+
+
+

wnck_window_get_session_id_utf8 ()

+
const char *
+wnck_window_get_session_id_utf8 (WnckWindow *window);
+

Gets the session ID for window + in UTF-8 encoding. +The session ID should be in Latin-1 encoding, so the conversion should work, +but a broken client could set a session ID that might not be convertable to +UTF-8.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the session ID for window +in UTF-8, or NULL if window +has +no session ID.

+
+
+
+
+

wnck_window_get_pid ()

+
int
+wnck_window_get_pid (WnckWindow *window);
+

Gets the process ID of window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the process ID of window +, or 0 if none is available.

+
+
+
+
+

wnck_window_get_sort_order ()

+
gint
+wnck_window_get_sort_order (WnckWindow *window);
+

Gets the sort order of window +, used for ordering of window + in +WnckSelector and WnckTasklist. The sort order is an internal state in +libwnck. The initial value is defined when the window is created.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the sort order of window +, or G_MAXINT if none is available.

+
+

Since: 2.10

+
+
+
+

wnck_window_set_sort_order ()

+
void
+wnck_window_set_sort_order (WnckWindow *window,
+                            gint order);
+

Sets the sort order of window +. The sort order is used for ordering of +window + in WnckSelector and WnckTasklist.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

order

new sort order for window +.

 
+
+

Since: 2.20

+
+
+
+

wnck_window_get_window_type ()

+
WnckWindowType
+wnck_window_get_window_type (WnckWindow *window);
+

Gets the semantic type of window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the semantic type of window +.

+
+
+
+
+

wnck_window_set_window_type ()

+
void
+wnck_window_set_window_type (WnckWindow *window,
+                             WnckWindowType wintype);
+

Sets the semantic type of window + to wintype +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

wintype

a semantic type.

 
+
+

Since: 2.12

+
+
+
+

wnck_window_get_state ()

+
WnckWindowState
+wnck_window_get_state (WnckWindow *window);
+

Gets the state of window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

bitmask of active states for window +.

+
+
+
+
+

wnck_window_is_minimized ()

+
gboolean
+wnck_window_is_minimized (WnckWindow *window);
+

Gets whether window + is minimized. Minimization state may change anytime +a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is minimized, FALSE otherwise.

+
+
+
+
+

wnck_window_is_maximized_horizontally ()

+
gboolean
+wnck_window_is_maximized_horizontally (WnckWindow *window);
+

Gets whether window + is maximized horizontally. Horizontal maximization +state may change anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is maximized horizontally, FALSE otherwise.

+
+
+
+
+

wnck_window_is_maximized_vertically ()

+
gboolean
+wnck_window_is_maximized_vertically (WnckWindow *window);
+

Gets whether window + is maximized vertically. vertiVal maximization +state may change anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is maximized vertically, FALSE otherwise.

+
+
+
+
+

wnck_window_is_maximized ()

+
gboolean
+wnck_window_is_maximized (WnckWindow *window);
+

Gets whether window + is maximized. Maximization state may change +anytime a “state-changed” signal gets emitted.

+

As for GDK, "maximized" means both vertically and horizontally. If window + +is maximized in only one direction, then window + is not considered +maximized.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is maximized in both directions, FALSE +otherwise.

+
+
+
+
+

wnck_window_is_shaded ()

+
gboolean
+wnck_window_is_shaded (WnckWindow *window);
+

Gets whether window + is shaded. Shade state may change anytime +a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is shaded, FALSE otherwise.

+
+
+
+
+

wnck_window_is_pinned ()

+
gboolean
+wnck_window_is_pinned (WnckWindow *window);
+

Gets whether window + is on all workspace. Pinned state may change +anytime a “workspace-changed” signal gets emitted, but not when +a “state-changed” gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is on all workspaces, FALSE otherwise.

+
+
+
+
+

wnck_window_is_sticky ()

+
gboolean
+wnck_window_is_sticky (WnckWindow *window);
+

Gets whether window + is sticky. Sticky state may change +anytime a “state-changed” signal gets emitted.

+

Sticky here means "stuck to the glass", i.e. does not scroll with the +viewport. In GDK/GTK+ (e.g. gdk_window_stick()/gtk_window_stick()), sticky +means "stuck to the glass" and also that the window is +on all workspaces. But here it only means the viewport aspect of it.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is "stuck to the glass", FALSE otherwise.

+
+
+
+
+

wnck_window_is_above ()

+
gboolean
+wnck_window_is_above (WnckWindow *window);
+

Gets whether window + is above other windows. This state may change +anytime a “state-changed” signal gets emitted.

+

See wnck_window_make_above() for more details on this state.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is above other windows, FALSE otherwise.

+
+

Since: 2.14

+
+
+
+

wnck_window_is_below ()

+
gboolean
+wnck_window_is_below (WnckWindow *window);
+

Gets whether window + is below other windows. This state may change +anytime a “state-changed” signal gets emitted.

+

See wnck_window_make_below() for more details on this state.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is below other windows, FALSE otherwise.

+
+

Since: 2.20

+
+
+
+

wnck_window_is_skip_pager ()

+
gboolean
+wnck_window_is_skip_pager (WnckWindow *window);
+

Gets whether window + is included on pagers. This state may change +anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is included on pagers, FALSE otherwise.

+
+
+
+
+

wnck_window_is_skip_tasklist ()

+
gboolean
+wnck_window_is_skip_tasklist (WnckWindow *window);
+

Gets whether window + is included on tasklists. This state may change +anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is included on tasklists, FALSE otherwise.

+
+
+
+
+

wnck_window_is_fullscreen ()

+
gboolean
+wnck_window_is_fullscreen (WnckWindow *window);
+

Gets whether window + is fullscreen. Fullscreen state may change +anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is fullscreen, FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

wnck_window_needs_attention ()

+
gboolean
+wnck_window_needs_attention (WnckWindow *window);
+

Gets whether window + needs attention. This state may change anytime +a “state-changed” signal gets emitted.

+

This state depends on flags such as the demands_attention and is_urgent +hints.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +needs attention, FALSE otherwise.

+
+

Since: 2.12

+
+
+
+

wnck_window_or_transient_needs_attention ()

+
gboolean
+wnck_window_or_transient_needs_attention
+                               (WnckWindow *window);
+

Gets whether window + or one of its transients needs attention. This state +may change anytime a “state-changed” signal gets emitted.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +or one of its transients needs attention, +FALSE otherwise.

+
+

Since: 2.12

+
+
+
+

wnck_window_get_actions ()

+
WnckWindowActions
+wnck_window_get_actions (WnckWindow *window);
+

Gets the actions that can be done for window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

bitmask of actions that can be done for window +.

+
+
+
+
+

wnck_window_minimize ()

+
void
+wnck_window_minimize (WnckWindow *window);
+

Minimizes window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unminimize ()

+
void
+wnck_window_unminimize (WnckWindow *window,
+                        guint32 timestamp);
+

Unminimizes window + by activating it or one of its transients. See +wnck_window_activate_transient() for details on how the activation is done.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

timestamp

the X server timestamp of the user interaction event that caused +this call to occur.

 
+
+
+
+
+

wnck_window_maximize_horizontally ()

+
void
+wnck_window_maximize_horizontally (WnckWindow *window);
+

Asks the window manager to maximize horizontally window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unmaximize_horizontally ()

+
void
+wnck_window_unmaximize_horizontally (WnckWindow *window);
+

Asks the window manager to unmaximize horizontally window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_maximize_vertically ()

+
void
+wnck_window_maximize_vertically (WnckWindow *window);
+

Asks the window manager to maximize vertically window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unmaximize_vertically ()

+
void
+wnck_window_unmaximize_vertically (WnckWindow *window);
+

Asks the window manager to unmaximize vertically window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_maximize ()

+
void
+wnck_window_maximize (WnckWindow *window);
+

Asks the window manager to maximize window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unmaximize ()

+
void
+wnck_window_unmaximize (WnckWindow *window);
+

Asks the window manager to unmaximize window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_shade ()

+
void
+wnck_window_shade (WnckWindow *window);
+

Asks the window manager to shade window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unshade ()

+
void
+wnck_window_unshade (WnckWindow *window);
+

Asks the window manager to unshade window +.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_pin ()

+
void
+wnck_window_pin (WnckWindow *window);
+

Asks the window manager to put window + on all workspaces.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unpin ()

+
void
+wnck_window_unpin (WnckWindow *window);
+

Asks the window manager to put window + only in the currently active +workspace, if window + was previously pinned. If window + was not pinned, +does not change window +'s workspace. If the active workspace +is not known for some reason (it should not happen much), sets +window +'s workspace to the first workspace.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_stick ()

+
void
+wnck_window_stick (WnckWindow *window);
+

Asks the window manager to keep the window +'s position fixed on the +screen, even when the workspace or viewport scrolls.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_unstick ()

+
void
+wnck_window_unstick (WnckWindow *window);
+

Asks the window manager to not have window +'s position fixed on the +screen when the workspace or viewport scrolls.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_make_above ()

+
void
+wnck_window_make_above (WnckWindow *window);
+

Asks the window manager to put window + on top of most windows (window + will +not be on top of focused fullscreen windows, of other windows with this +setting and of dock windows).

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+

Since: 2.14

+
+
+
+

wnck_window_unmake_above ()

+
void
+wnck_window_unmake_above (WnckWindow *window);
+

Asks the window manager to not put window + on top of most windows, and to +put it again in the stack with other windows.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+

Since: 2.14

+
+
+
+

wnck_window_make_below ()

+
void
+wnck_window_make_below (WnckWindow *window);
+

Asks the window manager to put window + below most windows.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+

Since: 2.20

+
+
+
+

wnck_window_unmake_below ()

+
void
+wnck_window_unmake_below (WnckWindow *window);
+

Asks the window manager to not put window + below most windows, and to +put it again in the stack with other windows.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+

Since: 2.20

+
+
+
+

wnck_window_set_skip_pager ()

+
void
+wnck_window_set_skip_pager (WnckWindow *window,
+                            gboolean skip);
+

Asks the window manager to make window + included or not included on pagers.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

skip

whether window +should be included on pagers.

 
+
+
+
+
+

wnck_window_set_skip_tasklist ()

+
void
+wnck_window_set_skip_tasklist (WnckWindow *window,
+                               gboolean skip);
+

Asks the window manager to make window + included or not included on +tasklists.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

skip

whether window +should be included on tasklists.

 
+
+
+
+
+

wnck_window_set_fullscreen ()

+
void
+wnck_window_set_fullscreen (WnckWindow *window,
+                            gboolean fullscreen);
+

Asks the window manager to set the fullscreen state of window + according to +fullscreen +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

fullscreen

whether to make window +fullscreen.

 
+
+

Since: 2.8

+
+
+
+

wnck_window_close ()

+
void
+wnck_window_close (WnckWindow *window,
+                   guint32 timestamp);
+

Closes window +.

+

This function existed before 2.6, but the timestamp + argument was missing +in earlier versions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

timestamp

the X server timestamp of the user interaction event that caused +this call to occur.

 
+
+

Since: 2.6

+
+
+
+

wnck_window_get_workspace ()

+
WnckWorkspace *
+wnck_window_get_workspace (WnckWindow *window);
+

Gets the current workspace window + is on. If the window is pinned (on all +workspaces), or not on any workspaces, NULL may be returned.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

the single current workspace window +is on, or +NULL. The returned WnckWorkspace is owned by libwnck and must not be +referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_window_is_on_workspace ()

+
gboolean
+wnck_window_is_on_workspace (WnckWindow *window,
+                             WnckWorkspace *workspace);
+

Gets whether window + appears on workspace +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

workspace

a WnckWorkspace.

 
+
+
+

Returns

+

TRUE if window +appears on workspace +, FALSE otherwise.

+
+
+
+
+

wnck_window_is_visible_on_workspace ()

+
gboolean
+wnck_window_is_visible_on_workspace (WnckWindow *window,
+                                     WnckWorkspace *workspace);
+

Like wnck_window_is_on_workspace(), but also checks that +the window is in a visible state (i.e. not minimized or shaded).

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

workspace

a WnckWorkspace.

 
+
+
+

Returns

+

TRUE if window +appears on workspace +in normal state, FALSE +otherwise.

+
+
+
+
+

wnck_window_move_to_workspace ()

+
void
+wnck_window_move_to_workspace (WnckWindow *window,
+                               WnckWorkspace *space);
+

Asks the window manager to move window + to space +. If window + was pinned, it +will also result in window + being visible only on space +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

space

a WnckWorkspace.

 
+
+
+
+
+

wnck_window_is_in_viewport ()

+
gboolean
+wnck_window_is_in_viewport (WnckWindow *window,
+                            WnckWorkspace *workspace);
+

Gets TRUE if window + appears in the current viewport of workspace +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

workspace

a WnckWorkspace.

 
+
+
+

Returns

+

TRUE if window +appears in current viewport of workspace +, +FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

wnck_window_activate ()

+
void
+wnck_window_activate (WnckWindow *window,
+                      guint32 timestamp);
+

Asks the window manager to make window + the active window. The +window manager may choose to raise window + along with focusing it, and may +decide to refuse the request (to not steal the focus if there is a more +recent user activity, for example).

+

This function existed before 2.10, but the timestamp + argument was missing +in earlier versions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

timestamp

the X server timestamp of the user interaction event that caused +this call to occur.

 
+
+

Since: 2.10

+
+
+
+

wnck_window_is_active ()

+
gboolean
+wnck_window_is_active (WnckWindow *window);
+

Gets whether window + is the active window on its WnckScreen.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +is the active window on its WnckScreen, +FALSE otherwise.

+
+
+
+
+

wnck_window_is_most_recently_activated ()

+
gboolean
+wnck_window_is_most_recently_activated
+                               (WnckWindow *window);
+

Gets whether window + is the most recently activated window on its +WnckScreen.

+

The most recently activated window is identical to the active +window for click and sloppy focus methods (since a window is always +active in those cases) but differs slightly for mouse focus since +there often is no active window.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if window +was the most recently activated window on its +WnckScreen, FALSE otherwise.

+
+

Since: 2.8

+
+
+
+

wnck_window_activate_transient ()

+
void
+wnck_window_activate_transient (WnckWindow *window,
+                                guint32 timestamp);
+

If window + has transients, activates the most likely transient +instead of the window itself. Otherwise activates window +.

+

FIXME the ideal behavior of this function is probably to activate +the most recently active window among window + and its transients. +This is probably best implemented on the window manager side.

+

This function existed before 2.10, but the timestamp + argument was missing +in earlier versions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

a WnckWindow.

 

timestamp

the X server timestamp of the user interaction event that caused +this call to occur.

 
+
+

Since: 2.10

+
+
+
+

wnck_window_transient_is_most_recently_activated ()

+
gboolean
+wnck_window_transient_is_most_recently_activated
+                               (WnckWindow *window);
+

Gets whether one of the transients of window + is the most +recently activated window. See +wnck_window_is_most_recently_activated() for a more complete +description of what is meant by most recently activated. This +function is needed because clicking on a WnckTasklist once will +activate a transient instead of window + itself +(wnck_window_activate_transient), and clicking again should +minimize window + and its transients. (Not doing this can be +especially annoying in the case of modal dialogs that don't appear +in the WnckTasklist).

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+

Returns

+

TRUE if one of the transients of window +is the most recently +activated window, FALSE otherwise.

+
+

Since: 2.12

+
+
+
+

wnck_window_set_icon_geometry ()

+
void
+wnck_window_set_icon_geometry (WnckWindow *window,
+                               int x,
+                               int y,
+                               int width,
+                               int height);
+

Sets the icon geometry for window +. A typical use case for this is the +destination of the minimization animation of window +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

window

a WnckWindow.

 

x

X coordinate in pixels.

 

y

Y coordinate in pixels.

 

width

width in pixels.

 

height

height in pixels.

 
+
+
+
+
+

wnck_window_get_client_window_geometry ()

+
void
+wnck_window_get_client_window_geometry
+                               (WnckWindow *window,
+                                int *xp,
+                                int *yp,
+                                int *widthp,
+                                int *heightp);
+

Gets the size and position of window +, as last received +in a ConfigureNotify event (i.e. this call does not round-trip +to the server, just gets the last size we were notified of). +The X and Y coordinates are relative to the root window.

+

The window manager usually adds a frame around windows. If +you need to know the size of window + with the frame, use +wnck_window_get_geometry().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

window

a WnckWindow.

 

xp

return location for X coordinate in pixels of window +.

[out]

yp

return location for Y coordinate in pixels of window +.

[out]

widthp

return location for width in pixels of window +.

[out]

heightp

return location for height in pixels of window +.

[out]
+
+

Since: 2.20

+
+
+
+

wnck_window_get_geometry ()

+
void
+wnck_window_get_geometry (WnckWindow *window,
+                          int *xp,
+                          int *yp,
+                          int *widthp,
+                          int *heightp);
+

Gets the size and position of window +, including decorations. This +function uses the information last received in a ConfigureNotify +event and adjusts it according to the size of the frame that is +added by the window manager (this call does not round-trip to the +server, it just gets the last sizes that were notified). The +X and Y coordinates are relative to the root window.

+

If you need to know the actual size of window + ignoring the frame +added by the window manager, use wnck_window_get_client_window_geometry().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

window

a WnckWindow.

 

xp

return location for X coordinate in pixels of window +.

[out]

yp

return location for Y coordinate in pixels of window +.

[out]

widthp

return location for width in pixels of window +.

[out]

heightp

return location for height in pixels of window +.

[out]
+
+
+
+
+

wnck_window_set_geometry ()

+
void
+wnck_window_set_geometry (WnckWindow *window,
+                          WnckWindowGravity gravity,
+                          WnckWindowMoveResizeMask geometry_mask,
+                          int x,
+                          int y,
+                          int width,
+                          int height);
+

Sets the size and position of window +. The X and Y coordinates should be +relative to the root window.

+

Note that the new size and position apply to window + with its frame added +by the window manager. Therefore, using wnck_window_set_geometry() with +the values returned by wnck_window_get_geometry() should be a no-op, while +using wnck_window_set_geometry() with the values returned by +wnck_window_get_client_window_geometry() should reduce the size of window + +and move it.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

window

a WnckWindow.

 

gravity

the gravity point to use as a reference for the new position.

 

geometry_mask

a bitmask containing flags for what should be set.

 

x

new X coordinate in pixels of window +.

 

y

new Y coordinate in pixels of window +.

 

width

new width in pixels of window +.

 

height

new height in pixels of window +.

 
+
+

Since: 2.16

+
+
+
+

wnck_window_keyboard_move ()

+
void
+wnck_window_keyboard_move (WnckWindow *window);
+

Asks the window manager to start moving window + via the keyboard.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

wnck_window_keyboard_size ()

+
void
+wnck_window_keyboard_size (WnckWindow *window);
+

Asks the window manager to start resizing window + via the keyboard.

+
+

Parameters

+
+++++ + + + + + +

window

a WnckWindow.

 
+
+
+
+
+

Types and Values

+
+

WnckWindow

+
typedef struct _WnckWindow WnckWindow;
+

The WnckWindow struct contains only private fields and should not be +directly accessed.

+
+
+
+

enum WnckWindowType

+

Type describing the semantic type of a WnckWindow.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WNCK_WINDOW_NORMAL

+

the window is a normal window.

+
 

WNCK_WINDOW_DESKTOP

+

the window is a desktop.

+
 

WNCK_WINDOW_DOCK

+

the window is a dock or a panel.

+
 

WNCK_WINDOW_DIALOG

+

the window is a dialog window.

+
 

WNCK_WINDOW_TOOLBAR

+

the window is a tearoff toolbar.

+
 

WNCK_WINDOW_MENU

+

the window is a tearoff menu.

+
 

WNCK_WINDOW_UTILITY

+

the window is a small persistent utility window, such +as a palette or toolbox.

+
 

WNCK_WINDOW_SPLASHSCREEN

+

the window is a splash screen displayed as an +application is starting up.

+
 
+
+
+
+
+

enum WnckWindowState

+

Type used as a bitmask to describe the state of a WnckWindow.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WNCK_WINDOW_STATE_MINIMIZED

+

the window is minimized.

+
 

WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY

+

the window is horizontically +maximized.

+
 

WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY

+

the window is vertically maximized.

+
 

WNCK_WINDOW_STATE_SHADED

+

the window is shaded.

+
 

WNCK_WINDOW_STATE_SKIP_PAGER

+

the window should not be included on pagers.

+
 

WNCK_WINDOW_STATE_SKIP_TASKLIST

+

the window should not be included on +tasklists.

+
 

WNCK_WINDOW_STATE_STICKY

+

the window is sticky (see +wnck_window_is_sticky()).

+
 

WNCK_WINDOW_STATE_HIDDEN

+

the window is not visible on its WnckWorkspace +and viewport (when minimized, for example).

+
 

WNCK_WINDOW_STATE_FULLSCREEN

+

the window is fullscreen.

+
 

WNCK_WINDOW_STATE_DEMANDS_ATTENTION

+

the window needs attention (because +the window requested activation but the window manager refused it, for +example).

+
 

WNCK_WINDOW_STATE_URGENT

+

the window requires a response from the user.

+
 

WNCK_WINDOW_STATE_ABOVE

+

the window is above other windows (see +wnck_window_make_above()).

+
 

WNCK_WINDOW_STATE_BELOW

+

the window is below other windows (see +wnck_window_make_below()).

+
 
+
+
+
+
+

enum WnckWindowActions

+

Type used as a bitmask to describe the actions that can be done for a +WnckWindow.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WNCK_WINDOW_ACTION_MOVE

+

the window may be moved around the screen.

+
 

WNCK_WINDOW_ACTION_RESIZE

+

the window may be resized.

+
 

WNCK_WINDOW_ACTION_SHADE

+

the window may be shaded.

+
 

WNCK_WINDOW_ACTION_STICK

+

the window may be sticked.

+
 

WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY

+

the window may be maximized +horizontally.

+
 

WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY

+

the window may be maximized +vertically.

+
 

WNCK_WINDOW_ACTION_CHANGE_WORKSPACE

+

the window may be moved between +workspaces, or (un)pinned.

+
 

WNCK_WINDOW_ACTION_CLOSE

+

the window may be closed.

+
 

WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY

+

the window may be unmaximized +horizontally.

+
 

WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY

+

the window may be maximized +vertically.

+
 

WNCK_WINDOW_ACTION_UNSHADE

+

the window may be unshaded.

+
 

WNCK_WINDOW_ACTION_UNSTICK

+

the window may be unsticked.

+
 

WNCK_WINDOW_ACTION_MINIMIZE

+

the window may be minimized.

+
 

WNCK_WINDOW_ACTION_UNMINIMIZE

+

the window may be unminimized.

+
 

WNCK_WINDOW_ACTION_MAXIMIZE

+

the window may be maximized.

+
 

WNCK_WINDOW_ACTION_UNMAXIMIZE

+

the window may be unmaximized.

+
 

WNCK_WINDOW_ACTION_FULLSCREEN

+

the window may be brought to fullscreen.

+
 

WNCK_WINDOW_ACTION_ABOVE

+

the window may be made above other windows.

+
 

WNCK_WINDOW_ACTION_BELOW

+

the window may be made below other windows.

+
 
+
+
+
+
+

enum WnckWindowGravity

+

Flag used when changing the geometry of a WnckWindow. This is the gravity +point to use as a reference for the new position.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

WNCK_WINDOW_GRAVITY_CURRENT

+

keep the current gravity point.

+
 

WNCK_WINDOW_GRAVITY_NORTHWEST

+

use the left top corner of the frame window +as gravity point.

+
 

WNCK_WINDOW_GRAVITY_NORTH

+

use the center of the frame window's top side as +gravity point.

+
 

WNCK_WINDOW_GRAVITY_NORTHEAST

+

use the right top corner of the frame window +as gravity point.

+
 

WNCK_WINDOW_GRAVITY_WEST

+

use the center of the frame window's left side as +gravity point.

+
 

WNCK_WINDOW_GRAVITY_CENTER

+

use the center of the frame window as gravity +point.

+
 

WNCK_WINDOW_GRAVITY_EAST

+

use the center of the frame window's right side +as gravity point.

+
 

WNCK_WINDOW_GRAVITY_SOUTHWEST

+

use the left bottom corner of the frame +window as gravity point.

+
 

WNCK_WINDOW_GRAVITY_SOUTH

+

use the center of the frame window's bottom side +as gravity point.

+
 

WNCK_WINDOW_GRAVITY_SOUTHEAST

+

use the right bottom corner of the frame +window as gravity point.

+
 

WNCK_WINDOW_GRAVITY_STATIC

+

use the left top corner of the client window as +gravity point.

+
 
+
+

Since: 2.16

+
+
+
+

enum WnckWindowMoveResizeMask

+

Flag used as a bitmask when changing the geometry of a WnckWindow. This +indicates which part of the geometry should be changed.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WNCK_WINDOW_CHANGE_X

+

X coordinate of the window should be changed.

+
 

WNCK_WINDOW_CHANGE_Y

+

Y coordinate of the window should be changed.

+
 

WNCK_WINDOW_CHANGE_WIDTH

+

width of the window should be changed.

+
 

WNCK_WINDOW_CHANGE_HEIGHT

+

height of the window should be changed.

+
 
+
+

Since: 2.16

+
+
+
+

Signal Details

+
+

The “actions-changed” signal

+
void
+user_function (WnckWindow       *window,
+               WnckWindowActions changed_mask,
+               WnckWindowActions new_state,
+               gpointer          user_data)
+

Emitted when the actions availabilities for window + change.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

changed_mask

the bitmask containing bits set for all actions +availabilities for window +that have changed.

 

new_state

the new actions availabilities for window +.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “class-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the class name or instance name of window + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “geometry-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the geometry of window + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “icon-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the icon of window + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “name-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the name of window + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “role-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the role of window + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “state-changed” signal

+
void
+user_function (WnckWindow     *window,
+               WnckWindowState changed_mask,
+               WnckWindowState new_state,
+               gpointer        user_data)
+

Emitted when the state of window + changes. This can happen when window + is +(un)minimized, (un)maximized, (un)sticked, (un)shaded, (un)made above, +(un)made below, (un)set fullscreen, when it needs attention, etc. See +WnckWindowState for the complete list of states that might have changed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

changed_mask

the bitmask containing bits set for all states of window +that have changed.

 

new_state

the new state of window +.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

The “type-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the EWMH type hint of the window changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+

Since: 3.20

+
+
+
+

The “workspace-changed” signal

+
void
+user_function (WnckWindow *window,
+               gpointer    user_data)
+

Emitted when the current workspace of window + changes, or if window + has +been pinned or unpinned.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

window

the WnckWindow which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+ +
+ + + \ No newline at end of file diff --git a/doc/html/WnckWorkspace.html b/doc/html/WnckWorkspace.html new file mode 100644 index 0000000..7be4244 --- /dev/null +++ b/doc/html/WnckWorkspace.html @@ -0,0 +1,753 @@ + + + + +WnckWorkspace: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckWorkspace

+

WnckWorkspace — an object representing a workspace.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+WnckScreen * + +wnck_workspace_get_screen () +
+int + +wnck_workspace_get_number () +
const char * + +wnck_workspace_get_name () +
+void + +wnck_workspace_change_name () +
+int + +wnck_workspace_get_width () +
+int + +wnck_workspace_get_height () +
+int + +wnck_workspace_get_viewport_x () +
+int + +wnck_workspace_get_viewport_y () +
+gboolean + +wnck_workspace_is_virtual () +
+int + +wnck_workspace_get_layout_row () +
+int + +wnck_workspace_get_layout_column () +
+WnckWorkspace * + +wnck_workspace_get_neighbor () +
+void + +wnck_workspace_activate () +
+
+
+

Signals

+
+++++ + + + + + +
voidname-changedRun Last
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
 WnckWorkspace
enumWnckMotionDirection
+
+
+

Object Hierarchy

+
    GObject
+    ╰── WnckWorkspace
+
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

The WnckWorkspace represents what is called virtual +desktops in the EWMH. +A workspace is a virtualization of a WnckScreen: only one workspace +can be shown on a WnckScreen at a time. It makes it possible, for example, +to put windows on different workspaces to organize them.

+

If the WnckWorkspace size is bigger that the WnckScreen size, the +workspace contains a viewport. Viewports are defined in the large +desktops section of the EWMH. +The notion of workspaces and viewports are quite similar, and generally both +are not used at the same time: there are generally either multiple +workspaces with no viewport, or one workspace with a viewport. libwnck +supports all situations, even multiple workspaces with viewports.

+

Workspaces are organized according to a layout set on the WnckScreen. See +wnck_screen_try_set_workspace_layout() and +wnck_screen_release_workspace_layout() for more information about the +layout.

+

The WnckWorkspace objects are always owned by libwnck and must not be +referenced or unreferenced.

+
+
+

Functions

+
+

wnck_workspace_get_screen ()

+
WnckScreen *
+wnck_workspace_get_screen (WnckWorkspace *space);
+

Gets the WnckScreen space + is on.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the WnckScreen space +is on. The returned +WnckScreen is owned by libwnck and must not be referenced or unreferenced.

+

[transfer none]

+
+
+
+
+

wnck_workspace_get_number ()

+
int
+wnck_workspace_get_number (WnckWorkspace *space);
+

Gets the index of space + on the WnckScreen to which it belongs. The +first workspace has an index of 0.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the index of space +on its WnckScreen, or -1 on errors.

+
+
+
+
+

wnck_workspace_get_name ()

+
const char *
+wnck_workspace_get_name (WnckWorkspace *space);
+

Gets the human-readable name that should be used to refer to space +. If +the user has not set a special name, a fallback like "Workspace 3" will be +used.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the name of space +.

+
+
+
+
+

wnck_workspace_change_name ()

+
void
+wnck_workspace_change_name (WnckWorkspace *space,
+                            const char *name);
+

Changes the name of space +.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

space

a WnckWorkspace.

 

name

new name for space +.

 
+
+

Since: 2.2

+
+
+
+

wnck_workspace_get_width ()

+
int
+wnck_workspace_get_width (WnckWorkspace *space);
+

Gets the width of space +.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the width of space +.

+
+

Since: 2.4

+
+
+
+

wnck_workspace_get_height ()

+
int
+wnck_workspace_get_height (WnckWorkspace *space);
+

Gets the height of space +.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the height of space +.

+
+

Since: 2.4

+
+
+
+

wnck_workspace_get_viewport_x ()

+
int
+wnck_workspace_get_viewport_x (WnckWorkspace *space);
+

Gets the X coordinate of the viewport in space +.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the X coordinate of the viewport in space +, or 0 if space +does not +contain a viewport.

+
+

Since: 2.4

+
+
+
+

wnck_workspace_get_viewport_y ()

+
int
+wnck_workspace_get_viewport_y (WnckWorkspace *space);
+

Gets the Y coordinate of the viewport in space +.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the Y coordinate of the viewport in space +, or 0 if space +does not +contain a viewport.

+
+

Since: 2.4

+
+
+
+

wnck_workspace_is_virtual ()

+
gboolean
+wnck_workspace_is_virtual (WnckWorkspace *space);
+

Gets whether space + contains a viewport.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

TRUE if space +contains a viewport, FALSE otherwise.

+
+

Since: 2.4

+
+
+
+

wnck_workspace_get_layout_row ()

+
int
+wnck_workspace_get_layout_row (WnckWorkspace *space);
+

Gets the row of space + in the WnckWorkspace layout. The first row has an +index of 0 and is always the top row, regardless of the starting corner set +for the layout.

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the row of space +in the WnckWorkspace layout, or -1 on +errors.

+
+

Since: 2.20

+
+
+
+

wnck_workspace_get_layout_column ()

+
int
+wnck_workspace_get_layout_column (WnckWorkspace *space);
+

Gets the column of space + in the WnckWorkspace layout. The first column +has an index of 0 and is always the left column, regardless of the starting +corner set for the layout and regardless of the default direction of the +environment (i.e., in both Left-To-Right and Right-To-Left environments).

+
+

Parameters

+
+++++ + + + + + +

space

a WnckWorkspace.

 
+
+
+

Returns

+

the column of space +in the WnckWorkspace layout, or -1 on +errors.

+
+

Since: 2.20

+
+
+
+

wnck_workspace_get_neighbor ()

+
WnckWorkspace *
+wnck_workspace_get_neighbor (WnckWorkspace *space,
+                             WnckMotionDirection direction);
+

Gets the neighbor WnckWorkspace of space + in the direction + direction.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

space

a WnckWorkspace.

 

direction

direction in which to search the neighbor.

 
+
+
+

Returns

+

the neighbor WnckWorkspace of space +in the +direction +direction, or NULL if no such neighbor WnckWorkspace exists. +The returned WnckWorkspace is owned by libwnck and must not be referenced +or unreferenced.

+

[transfer none]

+
+

Since: 2.20

+
+
+
+

wnck_workspace_activate ()

+
void
+wnck_workspace_activate (WnckWorkspace *space,
+                         guint32 timestamp);
+

Asks the window manager to make space + the active workspace. The window +manager may decide to refuse the request (to not steal the focus if there is +a more recent user activity, for example).

+

This function existed before 2.10, but the timestamp + argument was missing +in earlier versions.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

space

a WnckWorkspace.

 

timestamp

the X server timestamp of the user interaction event that caused +this call to occur.

 
+
+

Since: 2.10

+
+
+
+

Types and Values

+
+

WnckWorkspace

+
typedef struct _WnckWorkspace WnckWorkspace;
+

The WnckWorkspace struct contains only private fields and should not be +directly accessed.

+
+
+
+

enum WnckMotionDirection

+

Type defining a direction in which to search a neighbor WnckWorkspace.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

WNCK_MOTION_UP

+

search a neighbor WnckWorkspace above another +WnckWorkspace.

+
 

WNCK_MOTION_DOWN

+

search a neighbor WnckWorkspace below another +WnckWorkspace.

+
 

WNCK_MOTION_LEFT

+

search a neighbor WnckWorkspace at the left of another +WnckWorkspace.

+
 

WNCK_MOTION_RIGHT

+

search a neighbor WnckWorkspace at the right of another +WnckWorkspace.

+
 
+
+

Since: 2.14

+
+
+
+

Signal Details

+
+

The “name-changed” signal

+
void
+user_function (WnckWorkspace *space,
+               gpointer       user_data)
+

Emitted when the name of space + changes.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

space

the WnckWorkspace which emitted the signal.

 

user_data

user data set when the signal handler was connected.

 
+
+

Flags: Run Last

+
+
+
+

See Also

+

WnckScreen

+
+
+ + + \ No newline at end of file diff --git a/doc/html/annotation-glossary.html b/doc/html/annotation-glossary.html new file mode 100644 index 0000000..4ccc7cd --- /dev/null +++ b/doc/html/annotation-glossary.html @@ -0,0 +1,66 @@ + + + + +Annotation Glossary: Libwnck Reference Manual + + + + + + + + + + + + + + + +
+

+Annotation Glossary

+

E

+
element-type
+

Generics and defining elements of containers and arrays.

+

N

+
nullable
+

NULL may be passed as the value in, out, in-out; or as a return value.

+

O

+
out
+

Parameter for returning results. Default is transfer full.

+

T

+
transfer full
+

Free data after the code is done.

+
transfer none
+

Don't free data after the code is done.

+

U

+
Unstable
+

Unstable interfaces are experimental or transitional. They are typically used to +give outside developers early access to new or rapidly changing technology, or +to provide an interim solution to a problem where a more general solution is +anticipated. No claims are made about either source or binary compatibility from +one minor release to the next. + +The Unstable interface level is a warning that these interfaces are subject to +change without warning and should not be used in unbundled products. + +Given such caveats, customer impact need not be a factor when considering +incompatible changes to an Unstable interface in a major or minor release. +Nonetheless, when such changes are introduced, the changes should still be +mentioned in the release notes for the affected release. +

+
+ + + \ No newline at end of file diff --git a/doc/html/core.html b/doc/html/core.html new file mode 100644 index 0000000..9c87552 --- /dev/null +++ b/doc/html/core.html @@ -0,0 +1,51 @@ + + + + +Part III. Libwnck Core Window Management Support: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Part III. Libwnck Core Window Management Support

+
+

Table of Contents

+
+
+WnckWindow — an object representing a window. +
+
+WnckClassGroup — an object representing a group of windows of the same +class. +
+
+WnckApplication — an object representing a group of windows of the same +application. +
+
+WnckWorkspace — an object representing a workspace. +
+
+WnckScreen — an object representing a screen. +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/getting-started.html b/doc/html/getting-started.html new file mode 100644 index 0000000..1bafb75 --- /dev/null +++ b/doc/html/getting-started.html @@ -0,0 +1,300 @@ + + + + +Part II. Getting Started with libwnck: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Part II. Getting Started with libwnck

+
+

Use Cases

+

+ Most users of libwnck should be tools that deal heavily with window management in one way or another: tasklists and pagers are obvious examples, but tools to automatically organize windows, to track resources of windows, or to inspect what is happening on a display can also be built with this library. +

+

+ Applications that just need to do some management on their own windows (like positioning one of their windows on a specific workspace) should likely not use libwnck, as the use of this library is relatively expensive in terms of resources. The internals of libwnck make sure that the library always tracks everything that is occurring on the display, mirroring various information from the X server and actively using resources to update the cached information as it changes. In concrete terms, every time something changes on the display, every application using libwnck will wake up. An application that is not dealing specifically with window management should not do this. While wnck_shutdown() can be used to mitigate the expensiveness of libwnck, it is generally not considered a proper solution. +

+

+ When considering the use of libwnck, it makes sense to keep in mind the cost of the library. For example, it is possible to share this cost between various tools all dealing in one way or another with window management, by grouping them in the same process, even if from a UI perspective they all look like different applications. +

+
+
+

Common Pitfalls

+

+ While the API provided by libwnck should be mostly straight-forward in general, a few pitfalls are often hit by users of the library. +

+
+

+Explicit fetching of information

+

+ At its creation, a WnckScreen object will not have fetched information from the X server. If queried immediately after its creation (via wnck_screen_get_windows() or wnck_screen_get_workspaces(), for example), the WnckScreen object will look like there are no workspaces nor windows on the screen. This information is fetched in the main event loop with an idle source, to avoid an expensive synchronous operation on startup. If no main event loop is used, or if the information is needed as soon as possible after the creation of the object, wnck_screen_force_update() can be used to explicitly fetch the information. +

+
+
+

+Lazy initialization of WnckScreen objects and signals

+

+ As mentioned above, a WnckScreen object will have no information at its creation: it is lazily initialized during a main event loop. This lazy initialization will lead to the emission of many signals by the WnckScreen object: for instance, the "window-opened" signal will be emitted for all WnckWindow objects representing existing windows during the lazy initialization. This is actually a feature that enables you to easily initialize the state of your application, with the same code you will use to update its state when new windows get opened; there is an example showing this. +

+
+
+

+Memory management

+

+ All objects provided by the Core Window Management Support are owned by libwnck and should not be referenced or unreferenced by the user. Those objects are tied to X resources, and it makes no sense to keep the objects alive when the X resources are gone; doing so could lead to errors. Therefore it is important that, when keeping in memory a pointer to such an object, the life of this object is tracked to make sure the pointer is always valid. +

+

+ This memory management model is important to keep in mind for users of wnck_shutdown(), and especially for users of libwnck through introspection. With introspection, all variables pointing to objects owned by libwnck must be cleared before wnck_shutdown() as the introspection support can add some references to the objects. +

+

+ For instance, the following would work in Python: +

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
from gi.repository import Wnck
+
+screen = Wnck.Screen.get_default()
+[...]
+screen = None
+Wnck.Shutdown()
+
+ +

+

+
+
+

+Source indication

+

+ Window management actions that are performed with libwnck are generally implemented as requests to the window manager. In order to not disturb the workflow of the user, the window manager may choose to put restrictions on various requests sent from applications. However, if those requests represent direct actions from the user, then the window manager will obey them. To indicate that the requests are the result of actions from the user, the application should set the source indication in the requests, as defined in the EWMH. The wnck_set_client_type() can be used to define the source indication. +

+
+
+

+GDK initialization

+

+ Internally, libwnck uses GDK. This means that before any call to libwnck API, GDK needs to be initialized. This can be achieved with gdk_init(), or indirectly via gtk_init(). +

+
+
+
+

Examples

+

+ This first example is a small utility listing all windows on the current screen. As this is all done synchronously, without using a main event loop, we use wnck_screen_force_update() to explicitly fetch the information needed for the WnckScreen object. + +

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
#include <libwnck/libwnck.h>
+
+int
+main (int    argc,
+      char **argv)
+{
+  WnckScreen *screen;
+  WnckWindow *active_window;
+  GList *window_l;
+
+  gdk_init (&argc, &argv);
+
+  screen = wnck_screen_get_default ();
+
+  wnck_screen_force_update (screen);
+
+  active_window = wnck_screen_get_active_window (screen);
+
+  for (window_l = wnck_screen_get_windows (screen); window_l != NULL; window_l = window_l->next)
+    {
+      WnckWindow *window = WNCK_WINDOW (window_l->data);
+      g_print ("%s%s\n", wnck_window_get_name (window),
+                  window == active_window ? " (active)" : "");
+    }
+
+  return 0;
+}
+
+ +

+

+

+ The second example is similar, except that we use a main event loop. We connect to the "window-opened" signal to print information about new WnckScreen objects. Here, we use the fact that the "window-opened" signal is emitted for all existing windows during the lazy initialization of the WnckScreen object, in order to achieve an output similar to the previous example. However, during the lazy initialization, the active window is not necessarily known yet and we cannot tell whether the opened window is the currently active one. We connect to the "active-window-changed" signal to determine the active window when this information becomes available. + +

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
#include <libwnck/libwnck.h>
+
+static void
+on_window_opened (WnckScreen *screen,
+           WnckWindow *window,
+           gpointer    data)
+{
+  /* Note: when this event is emitted while screen is initialized, there is no
+   * active window yet. */
+
+  g_print ("%s\n", wnck_window_get_name (window));
+}
+
+static void
+on_active_window_changed (WnckScreen *screen,
+                   WnckWindow *previously_active_window,
+                   gpointer    data)
+{
+  WnckWindow *active_window;
+
+  active_window = wnck_screen_get_active_window (screen);
+
+  if (active_window)
+    g_print ("active: %s\n", wnck_window_get_name (active_window));
+  else
+    g_print ("no active window\n");
+}
+
+int
+main (int    argc,
+      char **argv)
+{
+  GMainLoop *loop;
+  WnckScreen *screen;
+
+  gdk_init (&argc, &argv);
+
+  loop = g_main_loop_new (NULL, FALSE);
+  screen = wnck_screen_get_default ();
+
+  g_signal_connect (screen, "window-opened",
+             G_CALLBACK (on_window_opened), NULL);
+  g_signal_connect (screen, "active-window-changed",
+             G_CALLBACK (on_active_window_changed), NULL);
+
+  g_main_loop_run (loop);
+
+  g_main_loop_unref (loop);
+
+  return 0;
+}
+
+ +

+

+
+
+ + + \ No newline at end of file diff --git a/doc/html/home.png b/doc/html/home.png new file mode 100644 index 0000000..b293af5 Binary files /dev/null and b/doc/html/home.png differ diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..b0fd186 --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,96 @@ + + + + +Libwnck Reference Manual: Libwnck Reference Manual + + + + + + + +
+
+
+
+
+
+
I. Libwnck Overview
+
II. Getting Started with libwnck
+
III. Libwnck Core Window Management Support
+
+
+WnckWindow — an object representing a window. +
+
+WnckClassGroup — an object representing a group of windows of the same +class. +
+
+WnckApplication — an object representing a group of windows of the same +application. +
+
+WnckWorkspace — an object representing a workspace. +
+
+WnckScreen — an object representing a screen. +
+
+
IV. Libwnck Widgets
+
+
+WnckActionMenu — a menu widget, used to manipulate a window. +
+
+WnckPager — a pager widget, showing the content of workspaces. +
+
+WnckSelector — a window selector widget, showing the list of windows as +a menu. +
+
+WnckTasklist — a tasklist widget, showing the list of windows as a list +of buttons. +
+
+
V. Libwnck Utilities
+
+
+Resource Usage of X Clients — reading resource usage of X clients. +
+
+Icons Functions +
+
+Miscellaneous Functions — other additional features. +
+
+Version Information — variables and functions to check the libwnck version +
+
+
VI. Index of symbols
+
+
Index of all symbols
+
Index of deprecated symbols
+
Index of new symbols in 2.2
+
Index of new symbols in 2.4
+
Index of new symbols in 2.6
+
Index of new symbols in 2.8
+
Index of new symbols in 2.10
+
Index of new symbols in 2.12
+
Index of new symbols in 2.14
+
Index of new symbols in 2.16
+
Index of new symbols in 2.20
+
Index of new symbols in 2.22
+
Index of new symbols in 3.0
+
Index of new symbols in 3.4
+
+
Annotation Glossary
+
+
+ + + \ No newline at end of file diff --git a/doc/html/indexes.html b/doc/html/indexes.html new file mode 100644 index 0000000..b3fc5a9 --- /dev/null +++ b/doc/html/indexes.html @@ -0,0 +1,48 @@ + + + + +Part VI. Index of symbols: Libwnck Reference Manual + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/html/ix01.html b/doc/html/ix01.html new file mode 100644 index 0000000..e99cbf3 --- /dev/null +++ b/doc/html/ix01.html @@ -0,0 +1,468 @@ + + + + +Index of all symbols: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of all symbols

+
+

W

+
+
WnckActionMenu, struct WnckActionMenu +
+
WnckActionMenu:window, The “window” property +
+
WnckApplication, WnckApplication +
+
WnckApplication::icon-changed, The “icon-changed” signal +
+
WnckApplication::name-changed, The “name-changed” signal +
+
WnckClassGroup, WnckClassGroup +
+
WnckClassGroup::icon-changed, The “icon-changed” signal +
+
WnckClassGroup::name-changed, The “name-changed” signal +
+
WnckClientType, enum WnckClientType +
+
WnckLoadIconFunction, WnckLoadIconFunction () +
+
WnckMotionDirection, enum WnckMotionDirection +
+
WnckPager, struct WnckPager +
+
WnckPagerDisplayMode, enum WnckPagerDisplayMode +
+
WnckResourceUsage, struct WnckResourceUsage +
+
WnckScreen, struct WnckScreen +
+
WnckScreen::active-window-changed, The “active-window-changed” signal +
+
WnckScreen::active-workspace-changed, The “active-workspace-changed” signal +
+
WnckScreen::application-closed, The “application-closed” signal +
+
WnckScreen::application-opened, The “application-opened” signal +
+
WnckScreen::background-changed, The “background-changed” signal +
+
WnckScreen::class-group-closed, The “class-group-closed” signal +
+
WnckScreen::class-group-opened, The “class-group-opened” signal +
+
WnckScreen::showing-desktop-changed, The “showing-desktop-changed” signal +
+
WnckScreen::viewports-changed, The “viewports-changed” signal +
+
WnckScreen::window-closed, The “window-closed” signal +
+
WnckScreen::window-manager-changed, The “window-manager-changed” signal +
+
WnckScreen::window-opened, The “window-opened” signal +
+
WnckScreen::window-stacking-changed, The “window-stacking-changed” signal +
+
WnckScreen::workspace-created, The “workspace-created” signal +
+
WnckScreen::workspace-destroyed, The “workspace-destroyed” signal +
+
WnckSelector, struct WnckSelector +
+
WnckTasklist, struct WnckTasklist +
+
WnckTasklist:fade-loop-time, The “fade-loop-time” style property +
+
WnckTasklist:fade-max-loops, The “fade-max-loops” style property +
+
WnckTasklist:fade-opacity, The “fade-opacity” style property +
+
WnckTasklist:fade-overlay-rect, The “fade-overlay-rect” style property +
+
WnckTasklistGroupingType, enum WnckTasklistGroupingType +
+
WnckWindow, WnckWindow +
+
WnckWindow::actions-changed, The “actions-changed” signal +
+
WnckWindow::class-changed, The “class-changed” signal +
+
WnckWindow::geometry-changed, The “geometry-changed” signal +
+
WnckWindow::icon-changed, The “icon-changed” signal +
+
WnckWindow::name-changed, The “name-changed” signal +
+
WnckWindow::role-changed, The “role-changed” signal +
+
WnckWindow::state-changed, The “state-changed” signal +
+
WnckWindow::type-changed, The “type-changed” signal +
+
WnckWindow::workspace-changed, The “workspace-changed” signal +
+
WnckWindowActions, enum WnckWindowActions +
+
WnckWindowGravity, enum WnckWindowGravity +
+
WnckWindowMoveResizeMask, enum WnckWindowMoveResizeMask +
+
WnckWindowState, enum WnckWindowState +
+
WnckWindowType, enum WnckWindowType +
+
WnckWorkspace, WnckWorkspace +
+
WnckWorkspace::name-changed, The “name-changed” signal +
+
WnckWorkspaceLayout, struct WnckWorkspaceLayout, struct WnckWorkspaceLayout +
+
wnck_action_menu_new, wnck_action_menu_new () +
+
wnck_application_get, wnck_application_get () +
+
wnck_application_get_icon, wnck_application_get_icon () +
+
wnck_application_get_icon_is_fallback, wnck_application_get_icon_is_fallback () +
+
wnck_application_get_icon_name, wnck_application_get_icon_name () +
+
wnck_application_get_mini_icon, wnck_application_get_mini_icon () +
+
wnck_application_get_name, wnck_application_get_name () +
+
wnck_application_get_n_windows, wnck_application_get_n_windows () +
+
wnck_application_get_pid, wnck_application_get_pid () +
+
wnck_application_get_startup_id, wnck_application_get_startup_id () +
+
wnck_application_get_windows, wnck_application_get_windows () +
+
wnck_application_get_xid, wnck_application_get_xid () +
+
WNCK_CHECK_VERSION, WNCK_CHECK_VERSION() +
+
wnck_class_group_get, wnck_class_group_get () +
+
wnck_class_group_get_icon, wnck_class_group_get_icon () +
+
wnck_class_group_get_id, wnck_class_group_get_id () +
+
wnck_class_group_get_mini_icon, wnck_class_group_get_mini_icon () +
+
wnck_class_group_get_name, wnck_class_group_get_name () +
+
wnck_class_group_get_res_class, wnck_class_group_get_res_class (), wnck_class_group_get_res_class () +
+
wnck_class_group_get_windows, wnck_class_group_get_windows () +
+
WNCK_DEFAULT_ICON_SIZE, WNCK_DEFAULT_ICON_SIZE +
+
WNCK_DEFAULT_MINI_ICON_SIZE, WNCK_DEFAULT_MINI_ICON_SIZE +
+
WNCK_MAJOR_VERSION, WNCK_MAJOR_VERSION +
+
WNCK_MICRO_VERSION, WNCK_MICRO_VERSION +
+
WNCK_MINOR_VERSION, WNCK_MINOR_VERSION +
+
wnck_pager_new, wnck_pager_new () +
+
wnck_pager_set_display_mode, wnck_pager_set_display_mode () +
+
wnck_pager_set_n_rows, wnck_pager_set_n_rows () +
+
wnck_pager_set_orientation, wnck_pager_set_orientation () +
+
wnck_pager_set_shadow_type, wnck_pager_set_shadow_type () +
+
wnck_pager_set_show_all, wnck_pager_set_show_all () +
+
wnck_pid_read_resource_usage, wnck_pid_read_resource_usage () +
+
wnck_screen_calc_workspace_layout, wnck_screen_calc_workspace_layout (), wnck_screen_calc_workspace_layout () +
+
wnck_screen_change_workspace_count, wnck_screen_change_workspace_count () +
+
wnck_screen_force_update, wnck_screen_force_update () +
+
wnck_screen_free_workspace_layout, wnck_screen_free_workspace_layout (), wnck_screen_free_workspace_layout () +
+
wnck_screen_get, wnck_screen_get () +
+
wnck_screen_get_active_window, wnck_screen_get_active_window () +
+
wnck_screen_get_active_workspace, wnck_screen_get_active_workspace () +
+
wnck_screen_get_background_pixmap, wnck_screen_get_background_pixmap () +
+
wnck_screen_get_default, wnck_screen_get_default () +
+
wnck_screen_get_for_root, wnck_screen_get_for_root () +
+
wnck_screen_get_height, wnck_screen_get_height () +
+
wnck_screen_get_number, wnck_screen_get_number () +
+
wnck_screen_get_previously_active_window, wnck_screen_get_previously_active_window () +
+
wnck_screen_get_showing_desktop, wnck_screen_get_showing_desktop () +
+
wnck_screen_get_width, wnck_screen_get_width () +
+
wnck_screen_get_windows, wnck_screen_get_windows () +
+
wnck_screen_get_windows_stacked, wnck_screen_get_windows_stacked () +
+
wnck_screen_get_window_manager_name, wnck_screen_get_window_manager_name () +
+
wnck_screen_get_workspace, wnck_screen_get_workspace () +
+
wnck_screen_get_workspaces, wnck_screen_get_workspaces () +
+
wnck_screen_get_workspace_count, wnck_screen_get_workspace_count () +
+
wnck_screen_move_viewport, wnck_screen_move_viewport () +
+
wnck_screen_net_wm_supports, wnck_screen_net_wm_supports () +
+
wnck_screen_release_workspace_layout, wnck_screen_release_workspace_layout () +
+
wnck_screen_toggle_showing_desktop, wnck_screen_toggle_showing_desktop () +
+
wnck_screen_try_set_workspace_layout, wnck_screen_try_set_workspace_layout () +
+
wnck_selector_new, wnck_selector_new () +
+
wnck_set_client_type, wnck_set_client_type () +
+
wnck_set_default_icon_size, wnck_set_default_icon_size () +
+
wnck_set_default_mini_icon_size, wnck_set_default_mini_icon_size () +
+
wnck_shutdown, wnck_shutdown () +
+
wnck_tasklist_get_size_hint_list, wnck_tasklist_get_size_hint_list () +
+
wnck_tasklist_new, wnck_tasklist_new () +
+
wnck_tasklist_set_button_relief, wnck_tasklist_set_button_relief () +
+
wnck_tasklist_set_grouping, wnck_tasklist_set_grouping () +
+
wnck_tasklist_set_grouping_limit, wnck_tasklist_set_grouping_limit () +
+
wnck_tasklist_set_icon_loader, wnck_tasklist_set_icon_loader () +
+
wnck_tasklist_set_include_all_workspaces, wnck_tasklist_set_include_all_workspaces () +
+
wnck_tasklist_set_switch_workspace_on_unminimize, wnck_tasklist_set_switch_workspace_on_unminimize () +
+
wnck_window_activate, wnck_window_activate () +
+
wnck_window_activate_transient, wnck_window_activate_transient () +
+
wnck_window_close, wnck_window_close () +
+
wnck_window_get, wnck_window_get () +
+
wnck_window_get_actions, wnck_window_get_actions () +
+
wnck_window_get_application, wnck_window_get_application () +
+
wnck_window_get_class_group, wnck_window_get_class_group () +
+
wnck_window_get_class_group_name, wnck_window_get_class_group_name () +
+
wnck_window_get_class_instance_name, wnck_window_get_class_instance_name () +
+
wnck_window_get_client_window_geometry, wnck_window_get_client_window_geometry () +
+
wnck_window_get_geometry, wnck_window_get_geometry () +
+
wnck_window_get_group_leader, wnck_window_get_group_leader () +
+
wnck_window_get_icon, wnck_window_get_icon () +
+
wnck_window_get_icon_is_fallback, wnck_window_get_icon_is_fallback () +
+
wnck_window_get_icon_name, wnck_window_get_icon_name () +
+
wnck_window_get_mini_icon, wnck_window_get_mini_icon () +
+
wnck_window_get_name, wnck_window_get_name () +
+
wnck_window_get_pid, wnck_window_get_pid () +
+
wnck_window_get_screen, wnck_window_get_screen () +
+
wnck_window_get_session_id, wnck_window_get_session_id () +
+
wnck_window_get_session_id_utf8, wnck_window_get_session_id_utf8 () +
+
wnck_window_get_sort_order, wnck_window_get_sort_order () +
+
wnck_window_get_state, wnck_window_get_state () +
+
wnck_window_get_transient, wnck_window_get_transient () +
+
wnck_window_get_window_type, wnck_window_get_window_type () +
+
wnck_window_get_workspace, wnck_window_get_workspace () +
+
wnck_window_get_xid, wnck_window_get_xid () +
+
wnck_window_has_icon_name, wnck_window_has_icon_name () +
+
wnck_window_has_name, wnck_window_has_name () +
+
wnck_window_is_above, wnck_window_is_above () +
+
wnck_window_is_active, wnck_window_is_active () +
+
wnck_window_is_below, wnck_window_is_below () +
+
wnck_window_is_fullscreen, wnck_window_is_fullscreen () +
+
wnck_window_is_in_viewport, wnck_window_is_in_viewport () +
+
wnck_window_is_maximized, wnck_window_is_maximized () +
+
wnck_window_is_maximized_horizontally, wnck_window_is_maximized_horizontally () +
+
wnck_window_is_maximized_vertically, wnck_window_is_maximized_vertically () +
+
wnck_window_is_minimized, wnck_window_is_minimized () +
+
wnck_window_is_most_recently_activated, wnck_window_is_most_recently_activated () +
+
wnck_window_is_on_workspace, wnck_window_is_on_workspace () +
+
wnck_window_is_pinned, wnck_window_is_pinned () +
+
wnck_window_is_shaded, wnck_window_is_shaded () +
+
wnck_window_is_skip_pager, wnck_window_is_skip_pager () +
+
wnck_window_is_skip_tasklist, wnck_window_is_skip_tasklist () +
+
wnck_window_is_sticky, wnck_window_is_sticky () +
+
wnck_window_is_visible_on_workspace, wnck_window_is_visible_on_workspace () +
+
wnck_window_keyboard_move, wnck_window_keyboard_move () +
+
wnck_window_keyboard_size, wnck_window_keyboard_size () +
+
wnck_window_make_above, wnck_window_make_above () +
+
wnck_window_make_below, wnck_window_make_below () +
+
wnck_window_maximize, wnck_window_maximize () +
+
wnck_window_maximize_horizontally, wnck_window_maximize_horizontally () +
+
wnck_window_maximize_vertically, wnck_window_maximize_vertically () +
+
wnck_window_minimize, wnck_window_minimize () +
+
wnck_window_move_to_workspace, wnck_window_move_to_workspace () +
+
wnck_window_needs_attention, wnck_window_needs_attention () +
+
wnck_window_or_transient_needs_attention, wnck_window_or_transient_needs_attention () +
+
wnck_window_pin, wnck_window_pin () +
+
wnck_window_set_fullscreen, wnck_window_set_fullscreen () +
+
wnck_window_set_geometry, wnck_window_set_geometry () +
+
wnck_window_set_icon_geometry, wnck_window_set_icon_geometry () +
+
wnck_window_set_skip_pager, wnck_window_set_skip_pager () +
+
wnck_window_set_skip_tasklist, wnck_window_set_skip_tasklist () +
+
wnck_window_set_sort_order, wnck_window_set_sort_order () +
+
wnck_window_set_window_type, wnck_window_set_window_type () +
+
wnck_window_shade, wnck_window_shade () +
+
wnck_window_stick, wnck_window_stick () +
+
wnck_window_transient_is_most_recently_activated, wnck_window_transient_is_most_recently_activated () +
+
wnck_window_unmake_above, wnck_window_unmake_above () +
+
wnck_window_unmake_below, wnck_window_unmake_below () +
+
wnck_window_unmaximize, wnck_window_unmaximize () +
+
wnck_window_unmaximize_horizontally, wnck_window_unmaximize_horizontally () +
+
wnck_window_unmaximize_vertically, wnck_window_unmaximize_vertically () +
+
wnck_window_unminimize, wnck_window_unminimize () +
+
wnck_window_unpin, wnck_window_unpin () +
+
wnck_window_unshade, wnck_window_unshade () +
+
wnck_window_unstick, wnck_window_unstick () +
+
wnck_workspace_activate, wnck_workspace_activate () +
+
wnck_workspace_change_name, wnck_workspace_change_name () +
+
wnck_workspace_get_height, wnck_workspace_get_height () +
+
wnck_workspace_get_layout_column, wnck_workspace_get_layout_column () +
+
wnck_workspace_get_layout_row, wnck_workspace_get_layout_row () +
+
wnck_workspace_get_name, wnck_workspace_get_name () +
+
wnck_workspace_get_neighbor, wnck_workspace_get_neighbor () +
+
wnck_workspace_get_number, wnck_workspace_get_number () +
+
wnck_workspace_get_screen, wnck_workspace_get_screen () +
+
wnck_workspace_get_viewport_x, wnck_workspace_get_viewport_x () +
+
wnck_workspace_get_viewport_y, wnck_workspace_get_viewport_y () +
+
wnck_workspace_get_width, wnck_workspace_get_width () +
+
wnck_workspace_is_virtual, wnck_workspace_is_virtual () +
+
wnck_xid_read_resource_usage, wnck_xid_read_resource_usage () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix02.html b/doc/html/ix02.html new file mode 100644 index 0000000..5241099 --- /dev/null +++ b/doc/html/ix02.html @@ -0,0 +1,42 @@ + + + + +Index of deprecated symbols: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of deprecated symbols

+
+

W

+
+
WnckWorkspaceLayout, struct WnckWorkspaceLayout +
+
wnck_class_group_get_res_class, wnck_class_group_get_res_class () +
+
wnck_screen_calc_workspace_layout, wnck_screen_calc_workspace_layout () +
+
wnck_screen_free_workspace_layout, wnck_screen_free_workspace_layout () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix03.html b/doc/html/ix03.html new file mode 100644 index 0000000..a295bb8 --- /dev/null +++ b/doc/html/ix03.html @@ -0,0 +1,64 @@ + + + + +Index of new symbols in 2.2: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.2

+
+

W

+
+
WnckLoadIconFunction, WnckLoadIconFunction () +
+
wnck_application_get_startup_id, wnck_application_get_startup_id () +
+
wnck_class_group_get, wnck_class_group_get () +
+
wnck_class_group_get_icon, wnck_class_group_get_icon () +
+
wnck_class_group_get_mini_icon, wnck_class_group_get_mini_icon () +
+
wnck_class_group_get_name, wnck_class_group_get_name () +
+
wnck_class_group_get_res_class, wnck_class_group_get_res_class () +
+
wnck_class_group_get_windows, wnck_class_group_get_windows () +
+
wnck_pager_set_shadow_type, wnck_pager_set_shadow_type () +
+
wnck_screen_change_workspace_count, wnck_screen_change_workspace_count () +
+
wnck_screen_get_showing_desktop, wnck_screen_get_showing_desktop () +
+
wnck_screen_toggle_showing_desktop, wnck_screen_toggle_showing_desktop () +
+
wnck_tasklist_set_icon_loader, wnck_tasklist_set_icon_loader () +
+
wnck_window_get_class_group, wnck_window_get_class_group () +
+
wnck_workspace_change_name, wnck_workspace_change_name () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix04.html b/doc/html/ix04.html new file mode 100644 index 0000000..6a76847 --- /dev/null +++ b/doc/html/ix04.html @@ -0,0 +1,48 @@ + + + + +Index of new symbols in 2.4: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.4

+
+

W

+
+
wnck_screen_move_viewport, wnck_screen_move_viewport () +
+
wnck_window_is_in_viewport, wnck_window_is_in_viewport () +
+
wnck_workspace_get_height, wnck_workspace_get_height () +
+
wnck_workspace_get_viewport_x, wnck_workspace_get_viewport_x () +
+
wnck_workspace_get_viewport_y, wnck_workspace_get_viewport_y () +
+
wnck_workspace_get_width, wnck_workspace_get_width () +
+
wnck_workspace_is_virtual, wnck_workspace_is_virtual () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix05.html b/doc/html/ix05.html new file mode 100644 index 0000000..a67faf3 --- /dev/null +++ b/doc/html/ix05.html @@ -0,0 +1,42 @@ + + + + +Index of new symbols in 2.6: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.6

+
+

W

+
+
WnckResourceUsage, struct WnckResourceUsage +
+
wnck_pid_read_resource_usage, wnck_pid_read_resource_usage () +
+
wnck_window_close, wnck_window_close () +
+
wnck_xid_read_resource_usage, wnck_xid_read_resource_usage () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix06.html b/doc/html/ix06.html new file mode 100644 index 0000000..124af8f --- /dev/null +++ b/doc/html/ix06.html @@ -0,0 +1,42 @@ + + + + +Index of new symbols in 2.8: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.8

+
+

W

+
+
wnck_screen_get_previously_active_window, wnck_screen_get_previously_active_window () +
+
wnck_window_is_fullscreen, wnck_window_is_fullscreen () +
+
wnck_window_is_most_recently_activated, wnck_window_is_most_recently_activated () +
+
wnck_window_set_fullscreen, wnck_window_set_fullscreen () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix07.html b/doc/html/ix07.html new file mode 100644 index 0000000..59d104b --- /dev/null +++ b/doc/html/ix07.html @@ -0,0 +1,44 @@ + + + + +Index of new symbols in 2.10: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.10

+
+

W

+
+
wnck_selector_new, wnck_selector_new () +
+
wnck_window_activate, wnck_window_activate () +
+
wnck_window_activate_transient, wnck_window_activate_transient () +
+
wnck_window_get_sort_order, wnck_window_get_sort_order () +
+
wnck_workspace_activate, wnck_workspace_activate () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix08.html b/doc/html/ix08.html new file mode 100644 index 0000000..031ee3d --- /dev/null +++ b/doc/html/ix08.html @@ -0,0 +1,52 @@ + + + + +Index of new symbols in 2.12: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.12

+
+

W

+
+
WnckWorkspaceLayout, struct WnckWorkspaceLayout +
+
wnck_screen_calc_workspace_layout, wnck_screen_calc_workspace_layout () +
+
wnck_screen_free_workspace_layout, wnck_screen_free_workspace_layout () +
+
wnck_tasklist_set_button_relief, wnck_tasklist_set_button_relief () +
+
wnck_window_get_transient, wnck_window_get_transient () +
+
wnck_window_needs_attention, wnck_window_needs_attention () +
+
wnck_window_or_transient_needs_attention, wnck_window_or_transient_needs_attention () +
+
wnck_window_set_window_type, wnck_window_set_window_type () +
+
wnck_window_transient_is_most_recently_activated, wnck_window_transient_is_most_recently_activated () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix09.html b/doc/html/ix09.html new file mode 100644 index 0000000..43d3523 --- /dev/null +++ b/doc/html/ix09.html @@ -0,0 +1,46 @@ + + + + +Index of new symbols in 2.14: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.14

+
+

W

+
+
WnckClientType, enum WnckClientType +
+
WnckMotionDirection, enum WnckMotionDirection +
+
wnck_set_client_type, wnck_set_client_type () +
+
wnck_window_is_above, wnck_window_is_above () +
+
wnck_window_make_above, wnck_window_make_above () +
+
wnck_window_unmake_above, wnck_window_unmake_above () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix10.html b/doc/html/ix10.html new file mode 100644 index 0000000..eade8c1 --- /dev/null +++ b/doc/html/ix10.html @@ -0,0 +1,50 @@ + + + + +Index of new symbols in 2.16: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.16

+
+

W

+
+
WnckTasklist:fade-loop-time, The “fade-loop-time” style property +
+
WnckTasklist:fade-opacity, The “fade-opacity” style property +
+
WnckTasklist:fade-overlay-rect, The “fade-overlay-rect” style property +
+
WnckWindowGravity, enum WnckWindowGravity +
+
WnckWindowMoveResizeMask, enum WnckWindowMoveResizeMask +
+
wnck_window_has_icon_name, wnck_window_has_icon_name () +
+
wnck_window_has_name, wnck_window_has_name () +
+
wnck_window_set_geometry, wnck_window_set_geometry () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix11.html b/doc/html/ix11.html new file mode 100644 index 0000000..8ccc0e0 --- /dev/null +++ b/doc/html/ix11.html @@ -0,0 +1,68 @@ + + + + +Index of new symbols in 2.20: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.20

+
+

W

+
+
WnckScreen::class-group-closed, The “class-group-closed” signal +
+
WnckScreen::class-group-opened, The “class-group-opened” signal +
+
WnckScreen::showing-desktop-changed, The “showing-desktop-changed” signal +
+
WnckScreen::viewports-changed, The “viewports-changed” signal +
+
WnckScreen::window-manager-changed, The “window-manager-changed” signal +
+
WnckTasklist:fade-max-loops, The “fade-max-loops” style property +
+
wnck_screen_get_number, wnck_screen_get_number () +
+
wnck_screen_get_window_manager_name, wnck_screen_get_window_manager_name () +
+
wnck_screen_get_workspaces, wnck_screen_get_workspaces () +
+
wnck_window_get_client_window_geometry, wnck_window_get_client_window_geometry () +
+
wnck_window_is_below, wnck_window_is_below () +
+
wnck_window_make_below, wnck_window_make_below () +
+
wnck_window_set_sort_order, wnck_window_set_sort_order () +
+
wnck_window_unmake_below, wnck_window_unmake_below () +
+
wnck_workspace_get_layout_column, wnck_workspace_get_layout_column () +
+
wnck_workspace_get_layout_row, wnck_workspace_get_layout_row () +
+
wnck_workspace_get_neighbor, wnck_workspace_get_neighbor () +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix12.html b/doc/html/ix12.html new file mode 100644 index 0000000..fd4d226 --- /dev/null +++ b/doc/html/ix12.html @@ -0,0 +1,34 @@ + + + + +Index of new symbols in 2.22: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 2.22

+
+

W

+
wnck_action_menu_new, wnck_action_menu_new () +
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix13.html b/doc/html/ix13.html new file mode 100644 index 0000000..4bc5d5d --- /dev/null +++ b/doc/html/ix13.html @@ -0,0 +1,42 @@ + + + + +Index of new symbols in 3.0: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 3.0

+
+

W

+
+
WNCK_CHECK_VERSION, WNCK_CHECK_VERSION() +
+
WNCK_MAJOR_VERSION, WNCK_MAJOR_VERSION +
+
WNCK_MICRO_VERSION, WNCK_MICRO_VERSION +
+
WNCK_MINOR_VERSION, WNCK_MINOR_VERSION +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/ix14.html b/doc/html/ix14.html new file mode 100644 index 0000000..6c169b5 --- /dev/null +++ b/doc/html/ix14.html @@ -0,0 +1,34 @@ + + + + +Index of new symbols in 3.4: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Index of new symbols in 3.4

+
+

W

+
wnck_shutdown, wnck_shutdown () +
+
+
+ + + \ No newline at end of file diff --git a/doc/html/left-insensitive.png b/doc/html/left-insensitive.png new file mode 100644 index 0000000..903790a Binary files /dev/null and b/doc/html/left-insensitive.png differ diff --git a/doc/html/left.png b/doc/html/left.png new file mode 100644 index 0000000..21b31e3 Binary files /dev/null and b/doc/html/left.png differ diff --git a/doc/html/libwnck-Icons-Functions.html b/doc/html/libwnck-Icons-Functions.html new file mode 100644 index 0000000..58b276d --- /dev/null +++ b/doc/html/libwnck-Icons-Functions.html @@ -0,0 +1,122 @@ + + + + +Icons Functions: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Icons Functions

+

Icons Functions

+
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +wnck_set_default_icon_size () +
+void + +wnck_set_default_mini_icon_size () +
+
+
+

Types and Values

+
++++ + + + + + + + + + + +
#defineWNCK_DEFAULT_ICON_SIZE
#defineWNCK_DEFAULT_MINI_ICON_SIZE
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+
+
+

Functions

+
+

wnck_set_default_icon_size ()

+
void
+wnck_set_default_icon_size (gsize size);
+

Since: 2.4.6

+
+
+
+

wnck_set_default_mini_icon_size ()

+
void
+wnck_set_default_mini_icon_size (gsize size);
+

Since: 2.4.6

+
+
+
+

Types and Values

+
+

WNCK_DEFAULT_ICON_SIZE

+
#define WNCK_DEFAULT_ICON_SIZE 32
+
+
+
+
+

WNCK_DEFAULT_MINI_ICON_SIZE

+
#define WNCK_DEFAULT_MINI_ICON_SIZE 16
+
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/libwnck-Miscellaneous-Functions.html b/doc/html/libwnck-Miscellaneous-Functions.html new file mode 100644 index 0000000..ad78b47 --- /dev/null +++ b/doc/html/libwnck-Miscellaneous-Functions.html @@ -0,0 +1,185 @@ + + + + +Miscellaneous Functions: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Miscellaneous Functions

+

Miscellaneous Functions — other additional features.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +wnck_set_client_type () +
+void + +wnck_shutdown () +
+
+
+

Types and Values

+
++++ + + + + +
enumWnckClientType
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

These functions are utility functions providing some additional features to +libwnck users.

+
+
+

Functions

+
+

wnck_set_client_type ()

+
void
+wnck_set_client_type (WnckClientType ewmh_sourceindication_client_type);
+

Sets the role of the libwnck user.

+

The default role is WNCK_CLIENT_TYPE_APPLICATION. Therefore, for +applications providing some window management features, like pagers or +tasklists, it is important to set the role to WNCK_CLIENT_TYPE_PAGER for +libwnck to properly work.

+
+

Parameters

+
+++++ + + + + + +

ewmh_sourceindication_client_type

a role for the client.

 
+
+

Since: 2.14

+
+
+
+

wnck_shutdown ()

+
void
+wnck_shutdown (void);
+

Makes libwnck stop listening to events and tear down all resources from +libwnck. This should be done if you are not going to need the state change +notifications for an extended period of time, to avoid wakeups with every +key and focus event.

+

After this, all pointers to Wnck object you might still hold are invalid.

+

Due to the fact that Wnck objects are all +owned by libwnck, users of this API through introspection should be +extremely careful: they must explicitly clear variables referencing objects +before this call. Failure to do so might result in crashes.

+

Since: 3.4

+
+
+
+

Types and Values

+
+

enum WnckClientType

+

Type describing the role of the libwnck user.

+
+

Members

+
+++++ + + + + + + + + + + + + +

WNCK_CLIENT_TYPE_APPLICATION

+

the libwnck user is a normal application.

+
 

WNCK_CLIENT_TYPE_PAGER

+

the libwnck user is an utility application dealing +with window management, like pagers and taskbars.

+
 
+
+

Since: 2.14

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/libwnck-Resource-Usage-of-X-Clients.html b/doc/html/libwnck-Resource-Usage-of-X-Clients.html new file mode 100644 index 0000000..1be4291 --- /dev/null +++ b/doc/html/libwnck-Resource-Usage-of-X-Clients.html @@ -0,0 +1,311 @@ + + + + +Resource Usage of X Clients: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Resource Usage of X Clients

+

Resource Usage of X Clients — reading resource usage of X clients.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + + + + + + + +
+void + +wnck_xid_read_resource_usage () +
+void + +wnck_pid_read_resource_usage () +
+
+
+

Types and Values

+
++++ + + + + +
structWnckResourceUsage
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

libwnck provides an easy-to-use interface to the XRes X server extension to +read resource usage of X clients, which can be defined either by the X +window ID of one of their windows or by the process ID of their process.

+
+
+

Functions

+
+

wnck_xid_read_resource_usage ()

+
void
+wnck_xid_read_resource_usage (GdkDisplay *gdk_display,
+                              gulong xid,
+                              WnckResourceUsage *usage);
+

Looks for the X resource usage of the application owning the X window ID +xid + on display gdisplay +. If no resource usage can be found, then all +fields of usage + are set to 0.

+

To properly work, this function requires the XRes extension on the X server.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

gdk_display

a GdkDisplay.

 

xid

an X window ID.

 

usage

return location for the X resource usage of the application owning +the X window ID xid +.

 
+
+

Since: 2.6

+
+
+
+

wnck_pid_read_resource_usage ()

+
void
+wnck_pid_read_resource_usage (GdkDisplay *gdk_display,
+                              gulong pid,
+                              WnckResourceUsage *usage);
+

Looks for the X resource usage of the application with process ID pid + on +display gdisplay +. If no resource usage can be found, then all fields of +usage + are set to 0.

+

In order to find the resource usage of an application that does not have an +X window visible to libwnck (panel applets do not have any toplevel windows, +for example), wnck_pid_read_resource_usage() walks through the whole tree of +X windows. Since this walk is expensive in CPU, a cache is created. This +cache is updated in the background. This means there is a non-null +probability that no resource usage will be found for an application, even if +it is an X client. If this happens, calling wnck_pid_read_resource_usage() +again after a few seconds should work.

+

To properly work, this function requires the XRes extension on the X server.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

gdk_display

a GdkDisplay.

 

pid

a process ID.

 

usage

return location for the X resource usage of the application with +process ID pid +.

 
+
+

Since: 2.6

+
+
+
+

Types and Values

+
+

struct WnckResourceUsage

+
struct WnckResourceUsage {
+  gulong        total_bytes_estimate;
+  
+  gulong        pixmap_bytes;
+
+  unsigned int n_pixmaps;
+  unsigned int n_windows;
+  unsigned int n_gcs;
+  unsigned int n_pictures;
+  unsigned int n_glyphsets;
+  unsigned int n_fonts;
+  unsigned int n_colormap_entries;
+  unsigned int n_passive_grabs;
+  unsigned int n_cursors;
+  unsigned int n_other;
+};
+
+

The WnckResourceUsage struct contains information about the total resource +usage of an X client, and the number of resources allocated for each +resource type.

+
+

Members

+
+++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

gulong total_bytes_estimate;

estimation of the total number of bytes allocated in +the X server.

 

gulong pixmap_bytes;

number of bytes allocated in the X server for resources of +type Pixmap.

 

unsigned int n_pixmaps;

number of Pixmap resources allocated.

 

unsigned int n_windows;

number of Window resources allocated.

 

unsigned int n_gcs;

number of GContext resources allocated.

 

unsigned int n_pictures;

number of Picture resources allocated.

 

unsigned int n_glyphsets;

number of Glyphset resources allocated.

 

unsigned int n_fonts;

number of Font resources allocated.

 

unsigned int n_colormap_entries;

number of Colormap resources allocated.

 

unsigned int n_passive_grabs;

number of PassiveGrab resources allocated.

 

unsigned int n_cursors;

number of Cursor resources allocated.

 

unsigned int n_other;

number of other resources allocated.

 
+
+

Since: 2.6

+
+
+ +
+ + + \ No newline at end of file diff --git a/doc/html/libwnck-Version-Information.html b/doc/html/libwnck-Version-Information.html new file mode 100644 index 0000000..6527764 --- /dev/null +++ b/doc/html/libwnck-Version-Information.html @@ -0,0 +1,189 @@ + + + + +Version Information: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

Version Information

+

Version Information — variables and functions to check the libwnck version

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + +
#define +WNCK_CHECK_VERSION() +
+
+
+

Types and Values

+
++++ + + + + + + + + + + + + + + +
#defineWNCK_MAJOR_VERSION
#defineWNCK_MINOR_VERSION
#defineWNCK_MICRO_VERSION
+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

libwnck provides version information, primarily useful in configure checks +for builds that have a configure script, and to write code against different +versions of libwnck that do not provide the same API.

+
+
+

Functions

+
+

WNCK_CHECK_VERSION()

+
#define             WNCK_CHECK_VERSION(major,minor,micro)
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

major

major version (e.g. 1 for version 1.2.5)

 

minor

minor version (e.g. 2 for version 1.2.5)

 

micro

micro version (e.g. 5 for version 1.2.5)

 
+
+
+

Returns

+

TRUE if the version of the libwnck header files +is the same as or newer than the passed-in version, FALSE +otherwise.

+
+

Since: 3.0

+
+
+
+

Types and Values

+
+

WNCK_MAJOR_VERSION

+
#define WNCK_MAJOR_VERSION (3)
+
+
+

Returns

+

the major version number of the libwnck library, from the +headers used at application compile time, rather than from the library +linked against at application run time. +(e.g. in libwnck version 1.2.5 this is 1.)

+
+

Since: 3.0

+
+
+
+

WNCK_MINOR_VERSION

+
#define WNCK_MINOR_VERSION (24)
+
+
+

Returns

+

the minor version number of the libwnck library, from the +headers used at application compile time, rather than from the library +linked against at application run time. +(e.g. in libwnck version 1.2.5 this is 2.)

+
+

Since: 3.0

+
+
+
+

WNCK_MICRO_VERSION

+
#define WNCK_MICRO_VERSION (1)
+
+
+

Returns

+

the micro version number of the libwnck library, from the +headers used at application compile time, rather than from the library +linked against at application run time. +(e.g. in libwnck version 1.2.5 this is 5.)

+
+

Since: 3.0

+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/libwnck-Window-Action-Menu.html b/doc/html/libwnck-Window-Action-Menu.html new file mode 100644 index 0000000..d974a73 --- /dev/null +++ b/doc/html/libwnck-Window-Action-Menu.html @@ -0,0 +1,199 @@ + + + + +WnckActionMenu: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+
+
+ + +
+

WnckActionMenu

+

WnckActionMenu — a menu widget, used to manipulate a window.

+
+
+

Stability Level

+Unstable, unless otherwise indicated +
+
+

Functions

+
++++ + + + + +
+GtkWidget * + +wnck_action_menu_new () +
+
+
+

Properties

+
+++++ + + + + + +
gpointerwindowRead / Write / Construct Only
+
+
+

Types and Values

+
++++ + + + + +
structWnckActionMenu
+
+
+

Object Hierarchy

+
    GObject
+    ╰── GInitiallyUnowned
+        ╰── GtkWidget
+            ╰── GtkContainer
+                ╰── GtkMenuShell
+                    ╰── GtkMenu
+                        ╰── WnckActionMenu
+
+
+
+

Implemented Interfaces

+

+WnckActionMenu implements + AtkImplementorIface and GtkBuildable.

+
+
+

Includes

+
#include <libwnck/libwnck.h>
+
+
+
+

Description

+

A WnckActionMenu is a menu containing items to manipulate a window. +Relevant actions are displayed in the menu, and updated if the window state +changes. The content of this menu is synchronized with the similar menu +available in Metacity.

+
+

+If there is only one workspace with a viewport, the WnckActionMenu will +contain items to move the window in the viewport as if the viewport feature +was used to create workspaces. This is useful since viewport is generally +used as an alternative way to create virtual desktops. +

+

+The WnckActionMenu does not support moving the window in the viewport if +there are multiple workspaces on the screen: those two notions are so +similar that having both at the same time would result in a menu which would +be confusing to the user. +

+
+
+
+

Functions

+
+

wnck_action_menu_new ()

+
GtkWidget *
+wnck_action_menu_new (WnckWindow *window);
+

Creates a new WnckActionMenu. The WnckActionMenu will be filled with menu +items for window operations on window +.

+
+

Parameters

+
+++++ + + + + + +

window

the WnckWindow for which a menu will be created.

 
+
+
+

Returns

+

a newly created WnckActionMenu.

+
+

Since: 2.22

+
+
+
+

Types and Values

+
+

struct WnckActionMenu

+
struct WnckActionMenu;
+

The WnckActionMenu struct contains only private fields and should not be +directly accessed.

+
+
+
+

Property Details

+
+

The “window” property

+
  “window”                   gpointer
+

The window that will be manipulated through this menu.

+

Flags: Read / Write / Construct Only

+
+
+
+

See Also

+

WnckWindow

+
+
+ + + \ No newline at end of file diff --git a/doc/html/libwnck.devhelp2 b/doc/html/libwnck.devhelp2 new file mode 100644 index 0000000..c36367d --- /dev/null +++ b/doc/html/libwnck.devhelp2 @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/html/overview.html b/doc/html/overview.html new file mode 100644 index 0000000..0b5c591 --- /dev/null +++ b/doc/html/overview.html @@ -0,0 +1,60 @@ + + + + +Part I. Libwnck Overview: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Part I. Libwnck Overview

+
+
+

+ libwnck is the Window Navigator Construction Kit, a library for use in writing pagers, tasklists, and more generally applications that are dealing with window management. It tries hard to respect the Extended Window Manager Hints specification (EWMH). The Inter-Client Communication Conventions Manual (ICCCM) is also a useful resource. +

+

+ libwnck depends on the following libraries: +

+
++++ + + + + + + + + + + +

GTK+

+ The GTK+ GUI library. +

libstartupnotification

+ A library which allows providing visual feedback to the user that an application or operation is being launched (typically through a "busy" cursor). +

+

+

+
+
+ + + \ No newline at end of file diff --git a/doc/html/right-insensitive.png b/doc/html/right-insensitive.png new file mode 100644 index 0000000..a3696bf Binary files /dev/null and b/doc/html/right-insensitive.png differ diff --git a/doc/html/right.png b/doc/html/right.png new file mode 100644 index 0000000..73d25da Binary files /dev/null and b/doc/html/right.png differ diff --git a/doc/html/style.css b/doc/html/style.css new file mode 100644 index 0000000..3675420 --- /dev/null +++ b/doc/html/style.css @@ -0,0 +1,479 @@ +body +{ + font-family: cantarell, sans-serif; +} +.synopsis, .classsynopsis +{ + /* tango:aluminium 1/2 */ + background: #eeeeec; + background: rgba(238, 238, 236, 0.5); + border: solid 1px rgb(238, 238, 236); + padding: 0.5em; +} +.programlisting +{ + /* tango:sky blue 0/1 */ + /* fallback for no rgba support */ + background: #e6f3ff; + border: solid 1px #729fcf; + background: rgba(114, 159, 207, 0.1); + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0.5em; +} +.variablelist +{ + padding: 4px; + margin-left: 3em; +} +.variablelist td:first-child +{ + vertical-align: top; +} + +div.gallery-float +{ + float: left; + padding: 10px; +} +div.gallery-float img +{ + border-style: none; +} +div.gallery-spacer +{ + clear: both; +} + +a, a:visited +{ + text-decoration: none; + /* tango:sky blue 2 */ + color: #3465a4; +} +a:hover +{ + text-decoration: underline; + /* tango:sky blue 1 */ + color: #729fcf; +} + +div.informaltable table +{ + border-collapse: separate; + border-spacing: 1em 0.3em; + border: none; +} + +div.informaltable table td, div.informaltable table th +{ + vertical-align: top; +} + +.function_type, +.variable_type, +.property_type, +.signal_type, +.parameter_name, +.struct_member_name, +.union_member_name, +.define_keyword, +.datatype_keyword, +.typedef_keyword +{ + text-align: right; +} + +/* dim non-primary columns */ +.c_punctuation, +.function_type, +.variable_type, +.property_type, +.signal_type, +.define_keyword, +.datatype_keyword, +.typedef_keyword, +.property_flags, +.signal_flags, +.parameter_annotations, +.enum_member_annotations, +.struct_member_annotations, +.union_member_annotations +{ + color: #888a85; +} + +.function_type a, +.function_type a:visited, +.function_type a:hover, +.property_type a, +.property_type a:visited, +.property_type a:hover, +.signal_type a, +.signal_type a:visited, +.signal_type a:hover, +.signal_flags a, +.signal_flags a:visited, +.signal_flags a:hover +{ + color: #729fcf; +} + +td p +{ + margin: 0.25em; +} + +div.table table +{ + border-collapse: collapse; + border-spacing: 0px; + /* tango:aluminium 3 */ + border: solid 1px #babdb6; +} + +div.table table td, div.table table th +{ + /* tango:aluminium 3 */ + border: solid 1px #babdb6; + padding: 3px; + vertical-align: top; +} + +div.table table th +{ + /* tango:aluminium 2 */ + background-color: #d3d7cf; +} + +h4 +{ + color: #555753; + margin-top: 1em; + margin-bottom: 1em; +} + +hr +{ + /* tango:aluminium 1 */ + color: #d3d7cf; + background: #d3d7cf; + border: none 0px; + height: 1px; + clear: both; + margin: 2.0em 0em 2.0em 0em; +} + +dl.toc dt +{ + padding-bottom: 0.25em; +} + +dl.toc > dt +{ + padding-top: 0.25em; + padding-bottom: 0.25em; + font-weight: bold; +} + +dl.toc > dl +{ + padding-bottom: 0.5em; +} + +.parameter +{ + font-style: normal; +} + +.footer +{ + padding-top: 3.5em; + /* tango:aluminium 3 */ + color: #babdb6; + text-align: center; + font-size: 80%; +} + +.informalfigure, +.figure +{ + margin: 1em; +} + +.informalexample, +.example +{ + margin-top: 1em; + margin-bottom: 1em; +} + +.warning +{ + /* tango:orange 0/1 */ + background: #ffeed9; + background: rgba(252, 175, 62, 0.1); + border-color: #ffb04f; + border-color: rgba(252, 175, 62, 0.2); +} +.note +{ + /* tango:chameleon 0/0.5 */ + background: #d8ffb2; + background: rgba(138, 226, 52, 0.1); + border-color: #abf562; + border-color: rgba(138, 226, 52, 0.2); +} +div.blockquote +{ + border-color: #eeeeec; +} +.note, .warning, div.blockquote +{ + padding: 0.5em; + border-width: 1px; + border-style: solid; + margin: 2em; +} +.note p, .warning p +{ + margin: 0; +} + +div.warning h3.title, +div.note h3.title +{ + display: none; +} + +p + div.section +{ + margin-top: 1em; +} + +div.refnamediv, +div.refsynopsisdiv, +div.refsect1, +div.refsect2, +div.toc, +div.section +{ + margin-bottom: 1em; +} + +/* blob links */ +h2 .extralinks, h3 .extralinks +{ + float: right; + /* tango:aluminium 3 */ + color: #babdb6; + font-size: 80%; + font-weight: normal; +} + +.lineart +{ + color: #d3d7cf; + font-weight: normal; +} + +.annotation +{ + /* tango:aluminium 5 */ + color: #555753; + font-weight: normal; +} + +.structfield +{ + font-style: normal; + font-weight: normal; +} + +acronym,abbr +{ + border-bottom: 1px dotted gray; +} + +/* code listings */ + +.listing_code .programlisting .normal, +.listing_code .programlisting .normal a, +.listing_code .programlisting .number, +.listing_code .programlisting .cbracket, +.listing_code .programlisting .symbol { color: #555753; } +.listing_code .programlisting .comment, +.listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ +.listing_code .programlisting .function, +.listing_code .programlisting .function a, +.listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ +.listing_code .programlisting .string { color: #ad7fa8; } /* tango: plum */ +.listing_code .programlisting .keyword, +.listing_code .programlisting .usertype, +.listing_code .programlisting .type, +.listing_code .programlisting .type a { color: #4e9a06; } /* tango: chameleon 3 */ + +.listing_frame { + /* tango:sky blue 1 */ + border: solid 1px #729fcf; + border: solid 1px rgba(114, 159, 207, 0.2); + padding: 0px; +} + +.listing_lines, .listing_code { + margin-top: 0px; + margin-bottom: 0px; + padding: 0.5em; +} +.listing_lines { + /* tango:sky blue 0.5 */ + background: #a6c5e3; + background: rgba(114, 159, 207, 0.2); + /* tango:aluminium 6 */ + color: #2e3436; +} +.listing_code { + /* tango:sky blue 0 */ + background: #e6f3ff; + background: rgba(114, 159, 207, 0.1); +} +.listing_code .programlisting { + /* override from previous */ + border: none 0px; + padding: 0px; + background: none; +} +.listing_lines pre, .listing_code pre { + margin: 0px; +} + +@media screen { + /* these have a as a first child, but since there are no parent selectors + * we can't use that. */ + a.footnote + { + position: relative; + top: 0em ! important; + } + /* this is needed so that the local anchors are displayed below the naviagtion */ + div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] + { + display: inline-block; + position: relative; + top:-5em; + } + /* this seems to be a bug in the xsl style sheets when generating indexes */ + div.index div.index + { + top: 0em; + } + /* make space for the fixed navigation bar and add space at the bottom so that + * link targets appear somewhat close to top + */ + body + { + padding-top: 2.5em; + padding-bottom: 500px; + max-width: 60em; + } + p + { + max-width: 60em; + } + /* style and size the navigation bar */ + table.navigation#top + { + position: fixed; + background: #e2e2e2; + border-bottom: solid 1px #babdb6; + border-spacing: 5px; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + z-index: 10; + } + table.navigation#top td + { + padding-left: 6px; + padding-right: 6px; + } + .navigation a, .navigation a:visited + { + /* tango:sky blue 3 */ + color: #204a87; + } + .navigation a:hover + { + /* tango:sky blue 2 */ + color: #3465a4; + } + td.shortcuts + { + /* tango:sky blue 2 */ + color: #3465a4; + font-size: 80%; + white-space: nowrap; + } + td.shortcuts .dim + { + color: #babdb6; + } + .navigation .title + { + font-size: 80%; + max-width: none; + margin: 0px; + font-weight: normal; + } +} +@media screen and (min-width: 60em) { + /* screen larger than 60em */ + body { margin: auto; } +} +@media screen and (max-width: 60em) { + /* screen less than 60em */ + #nav_hierarchy { display: none; } + #nav_interfaces { display: none; } + #nav_prerequisites { display: none; } + #nav_derived_interfaces { display: none; } + #nav_implementations { display: none; } + #nav_child_properties { display: none; } + #nav_style_properties { display: none; } + #nav_index { display: none; } + #nav_glossary { display: none; } + .gallery_image { display: none; } + .property_flags { display: none; } + .signal_flags { display: none; } + .parameter_annotations { display: none; } + .enum_member_annotations { display: none; } + .struct_member_annotations { display: none; } + .union_member_annotations { display: none; } + /* now that a column is hidden, optimize space */ + col.parameters_name { width: auto; } + col.parameters_description { width: auto; } + col.struct_members_name { width: auto; } + col.struct_members_description { width: auto; } + col.enum_members_name { width: auto; } + col.enum_members_description { width: auto; } + col.union_members_name { width: auto; } + col.union_members_description { width: auto; } + .listing_lines { display: none; } +} +@media print { + table.navigation { + visibility: collapse; + display: none; + } + div.titlepage table.navigation { + visibility: visible; + display: table; + background: #e2e2e2; + border: solid 1px #babdb6; + margin-top: 0; + margin-bottom: 0; + top: 0; + left: 0; + height: 3em; + } +} + diff --git a/doc/html/up-insensitive.png b/doc/html/up-insensitive.png new file mode 100644 index 0000000..674be9c Binary files /dev/null and b/doc/html/up-insensitive.png differ diff --git a/doc/html/up.png b/doc/html/up.png new file mode 100644 index 0000000..ae83f66 Binary files /dev/null and b/doc/html/up.png differ diff --git a/doc/html/utils.html b/doc/html/utils.html new file mode 100644 index 0000000..e5b45b2 --- /dev/null +++ b/doc/html/utils.html @@ -0,0 +1,46 @@ + + + + +Part V. Libwnck Utilities: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Part V. Libwnck Utilities

+
+

Table of Contents

+
+
+Resource Usage of X Clients — reading resource usage of X clients. +
+
+Icons Functions +
+
+Miscellaneous Functions — other additional features. +
+
+Version Information — variables and functions to check the libwnck version +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/html/widgets.html b/doc/html/widgets.html new file mode 100644 index 0000000..6ed6596 --- /dev/null +++ b/doc/html/widgets.html @@ -0,0 +1,48 @@ + + + + +Part IV. Libwnck Widgets: Libwnck Reference Manual + + + + + + + + + + + + + + + + +
+

+Part IV. Libwnck Widgets

+
+

Table of Contents

+
+
+WnckActionMenu — a menu widget, used to manipulate a window. +
+
+WnckPager — a pager widget, showing the content of workspaces. +
+
+WnckSelector — a window selector widget, showing the list of windows as +a menu. +
+
+WnckTasklist — a tasklist widget, showing the list of windows as a list +of buttons. +
+
+
+
+ + + \ No newline at end of file diff --git a/doc/libwnck-docs.sgml b/doc/libwnck-docs.sgml new file mode 100644 index 0000000..b0b5a4f --- /dev/null +++ b/doc/libwnck-docs.sgml @@ -0,0 +1,212 @@ + + + + + + Libwnck Reference Manual + + + + Libwnck Overview + + + libwnck is the Window Navigator Construction Kit, a library for use in writing pagers, tasklists, and more generally applications that are dealing with window management. It tries hard to respect the Extended Window Manager Hints specification (EWMH). The Inter-Client Communication Conventions Manual (ICCCM) is also a useful resource. + + + + libwnck depends on the following libraries: + + + GTK+ + + The GTK+ GUI library. + + + + libstartupnotification + + A library which allows providing visual feedback to the user that an application or operation is being launched (typically through a "busy" cursor). + + + + + + + + + Getting Started with libwnck + + + Use Cases + + + Most users of libwnck should be tools that deal heavily with window management in one way or another: tasklists and pagers are obvious examples, but tools to automatically organize windows, to track resources of windows, or to inspect what is happening on a display can also be built with this library. + + + + Applications that just need to do some management on their own windows (like positioning one of their windows on a specific workspace) should likely not use libwnck, as the use of this library is relatively expensive in terms of resources. The internals of libwnck make sure that the library always tracks everything that is occurring on the display, mirroring various information from the X server and actively using resources to update the cached information as it changes. In concrete terms, every time something changes on the display, every application using libwnck will wake up. An application that is not dealing specifically with window management should not do this. While wnck_shutdown() can be used to mitigate the expensiveness of libwnck, it is generally not considered a proper solution. + + + + When considering the use of libwnck, it makes sense to keep in mind the cost of the library. For example, it is possible to share this cost between various tools all dealing in one way or another with window management, by grouping them in the same process, even if from a UI perspective they all look like different applications. + + + + + Common Pitfalls + + While the API provided by libwnck should be mostly straight-forward in general, a few pitfalls are often hit by users of the library. + + + + Explicit fetching of information + + At its creation, a WnckScreen object will not have fetched information from the X server. If queried immediately after its creation (via wnck_screen_get_windows() or wnck_screen_get_workspaces(), for example), the WnckScreen object will look like there are no workspaces nor windows on the screen. This information is fetched in the main event loop with an idle source, to avoid an expensive synchronous operation on startup. If no main event loop is used, or if the information is needed as soon as possible after the creation of the object, wnck_screen_force_update() can be used to explicitly fetch the information. + + + + + Lazy initialization of WnckScreen objects and signals + + As mentioned above, a WnckScreen object will have no information at its creation: it is lazily initialized during a main event loop. This lazy initialization will lead to the emission of many signals by the WnckScreen object: for instance, the "window-opened" signal will be emitted for all WnckWindow objects representing existing windows during the lazy initialization. This is actually a feature that enables you to easily initialize the state of your application, with the same code you will use to update its state when new windows get opened; there is an example showing this. + + + + + Memory management + + All objects provided by the Core Window Management Support are owned by libwnck and should not be referenced or unreferenced by the user. Those objects are tied to X resources, and it makes no sense to keep the objects alive when the X resources are gone; doing so could lead to errors. Therefore it is important that, when keeping in memory a pointer to such an object, the life of this object is tracked to make sure the pointer is always valid. + + + This memory management model is important to keep in mind for users of wnck_shutdown(), and especially for users of libwnck through introspection. With introspection, all variables pointing to objects owned by libwnck must be cleared before wnck_shutdown() as the introspection support can add some references to the objects. + + + For instance, the following would work in Python: + + +from gi.repository import Wnck + +screen = Wnck.Screen.get_default() +[...] +screen = None +Wnck.Shutdown() + + + + + + + Source indication + + Window management actions that are performed with libwnck are generally implemented as requests to the window manager. In order to not disturb the workflow of the user, the window manager may choose to put restrictions on various requests sent from applications. However, if those requests represent direct actions from the user, then the window manager will obey them. To indicate that the requests are the result of actions from the user, the application should set the source indication in the requests, as defined in the EWMH. The wnck_set_client_type() can be used to define the source indication. + + + + + GDK initialization + + Internally, libwnck uses GDK. This means that before any call to libwnck API, GDK needs to be initialized. This can be achieved with gdk_init(), or indirectly via gtk_init(). + + + + + + Examples + + + This first example is a small utility listing all windows on the current screen. As this is all done synchronously, without using a main event loop, we use wnck_screen_force_update() to explicitly fetch the information needed for the WnckScreen object. + + + + + + + + + + The second example is similar, except that we use a main event loop. We connect to the "window-opened" signal to print information about new WnckScreen objects. Here, we use the fact that the "window-opened" signal is emitted for all existing windows during the lazy initialization of the WnckScreen object, in order to achieve an output similar to the previous example. However, during the lazy initialization, the active window is not necessarily known yet and we cannot tell whether the opened window is the currently active one. We connect to the "active-window-changed" signal to determine the active window when this information becomes available. + + + + + + + + + + + + + + Libwnck Core Window Management Support + + + + + + + + + Libwnck Widgets + + + + + + + + Libwnck Utilities + + + + + + + + Index of symbols + + Index of all symbols + + + Index of deprecated symbols + + + Index of new symbols in 2.2 + + + Index of new symbols in 2.4 + + + Index of new symbols in 2.6 + + + Index of new symbols in 2.8 + + + Index of new symbols in 2.10 + + + Index of new symbols in 2.12 + + + Index of new symbols in 2.14 + + + Index of new symbols in 2.16 + + + Index of new symbols in 2.20 + + + Index of new symbols in 2.22 + + + Index of new symbols in 3.0 + + + Index of new symbols in 3.4 + + + + diff --git a/doc/libwnck-overrides.txt b/doc/libwnck-overrides.txt new file mode 100644 index 0000000..13f485f --- /dev/null +++ b/doc/libwnck-overrides.txt @@ -0,0 +1,2 @@ +# These are manually-edited to override or add declarations to those scanned +# from the header files. diff --git a/doc/libwnck-sections.txt b/doc/libwnck-sections.txt new file mode 100644 index 0000000..a4de2f6 --- /dev/null +++ b/doc/libwnck-sections.txt @@ -0,0 +1,468 @@ +libwnck/libwnck.h +# Core + +
+window +WnckWindow +WnckWindow +wnck_window_get +wnck_window_get_screen +wnck_window_has_name +wnck_window_get_name +wnck_window_has_icon_name +wnck_window_get_icon_name +wnck_window_get_icon_is_fallback +wnck_window_get_icon +wnck_window_get_mini_icon +wnck_window_get_application +wnck_window_get_transient +wnck_window_get_group_leader +wnck_window_get_xid +wnck_window_get_class_group +wnck_window_get_class_group_name +wnck_window_get_class_instance_name +wnck_window_get_session_id +wnck_window_get_session_id_utf8 +wnck_window_get_pid +wnck_window_get_sort_order +wnck_window_set_sort_order +WnckWindowType +wnck_window_get_window_type +wnck_window_set_window_type +WnckWindowState +wnck_window_get_state +wnck_window_is_minimized +wnck_window_is_maximized_horizontally +wnck_window_is_maximized_vertically +wnck_window_is_maximized +wnck_window_is_shaded +wnck_window_is_pinned +wnck_window_is_sticky +wnck_window_is_above +wnck_window_is_below +wnck_window_is_skip_pager +wnck_window_is_skip_tasklist +wnck_window_is_fullscreen +wnck_window_needs_attention +wnck_window_or_transient_needs_attention +WnckWindowActions +wnck_window_get_actions +wnck_window_minimize +wnck_window_unminimize +wnck_window_maximize_horizontally +wnck_window_unmaximize_horizontally +wnck_window_maximize_vertically +wnck_window_unmaximize_vertically +wnck_window_maximize +wnck_window_unmaximize +wnck_window_shade +wnck_window_unshade +wnck_window_pin +wnck_window_unpin +wnck_window_stick +wnck_window_unstick +wnck_window_make_above +wnck_window_unmake_above +wnck_window_make_below +wnck_window_unmake_below +wnck_window_set_skip_pager +wnck_window_set_skip_tasklist +wnck_window_set_fullscreen +wnck_window_close +wnck_window_get_workspace +wnck_window_is_on_workspace +wnck_window_is_visible_on_workspace +wnck_window_move_to_workspace +wnck_window_is_in_viewport +wnck_window_activate +wnck_window_is_active +wnck_window_is_most_recently_activated +wnck_window_activate_transient +wnck_window_transient_is_most_recently_activated +wnck_window_set_icon_geometry +WnckWindowGravity +WnckWindowMoveResizeMask +wnck_window_get_client_window_geometry +wnck_window_get_geometry +wnck_window_set_geometry +wnck_window_keyboard_move +wnck_window_keyboard_size + +WnckWindowPrivate +wnck_window_get_type + +WNCK_WINDOW +WNCK_IS_WINDOW +WNCK_TYPE_WINDOW +WNCK_WINDOW_CLASS +WNCK_IS_WINDOW_CLASS +WNCK_WINDOW_GET_CLASS +WnckWindowClass +
+ +
+class-group +WnckClassGroup +WnckClassGroup +wnck_class_group_get +wnck_class_group_get_id +wnck_class_group_get_res_class +wnck_class_group_get_name +wnck_class_group_get_icon +wnck_class_group_get_mini_icon +wnck_class_group_get_windows + +WnckClassGroupPrivate +wnck_class_group_get_type + +WNCK_CLASS_GROUP +WNCK_IS_CLASS_GROUP +WNCK_TYPE_CLASS_GROUP +WNCK_CLASS_GROUP_CLASS +WNCK_IS_CLASS_GROUP_CLASS +WNCK_CLASS_GROUP_GET_CLASS +WnckClassGroupClass +
+ +
+application +WnckApplication +WnckApplication +wnck_application_get +wnck_application_get_xid +wnck_application_get_name +wnck_application_get_icon_name +wnck_application_get_pid +wnck_application_get_icon_is_fallback +wnck_application_get_icon +wnck_application_get_mini_icon +wnck_application_get_startup_id +wnck_application_get_windows +wnck_application_get_n_windows + +WnckApplicationPrivate +wnck_application_get_type + +WNCK_APPLICATION +WNCK_IS_APPLICATION +WNCK_TYPE_APPLICATION +WNCK_APPLICATION_CLASS +WNCK_IS_APPLICATION_CLASS +WNCK_APPLICATION_GET_CLASS +WnckApplicationClass +
+ +
+workspace +WnckWorkspace +WnckWorkspace +wnck_workspace_get_screen +wnck_workspace_get_number +wnck_workspace_get_name +wnck_workspace_change_name +wnck_workspace_get_width +wnck_workspace_get_height +wnck_workspace_get_viewport_x +wnck_workspace_get_viewport_y +wnck_workspace_is_virtual +wnck_workspace_get_layout_row +wnck_workspace_get_layout_column +WnckMotionDirection +wnck_workspace_get_neighbor +wnck_workspace_activate + +WnckWorkspacePrivate +wnck_workspace_get_type + +WNCK_WORKSPACE +WNCK_IS_WORKSPACE +WNCK_TYPE_WORKSPACE +WNCK_WORKSPACE_CLASS +WNCK_IS_WORKSPACE_CLASS +WNCK_WORKSPACE_GET_CLASS +WnckWorkspaceClass +
+ +
+screen +WnckScreen +WnckScreen +wnck_screen_get_default +wnck_screen_get +wnck_screen_get_for_root +wnck_screen_get_number +wnck_screen_get_width +wnck_screen_get_height +wnck_screen_force_update +wnck_screen_get_window_manager_name +wnck_screen_net_wm_supports +wnck_screen_get_active_window +wnck_screen_get_previously_active_window +wnck_screen_get_windows +wnck_screen_get_windows_stacked +wnck_screen_get_active_workspace +wnck_screen_get_workspaces +wnck_screen_get_workspace +wnck_screen_get_workspace_count +wnck_screen_change_workspace_count +wnck_screen_try_set_workspace_layout +wnck_screen_release_workspace_layout +WnckWorkspaceLayout +wnck_screen_calc_workspace_layout +wnck_screen_free_workspace_layout +wnck_screen_move_viewport +wnck_screen_get_background_pixmap +wnck_screen_get_showing_desktop +wnck_screen_toggle_showing_desktop + +WnckScreenPrivate +wnck_screen_get_type +# FIXME: the first two WNCK_TYPE_ are dummy stuff gtk-doc generates, the other +# two should be added when _wnck_screen_get_workspace_layout becomes public +WNCK_TYPE___WNCK_LAYOUT_CORNER +WNCK_TYPE___WNCK_LAYOUT_ORIENTATION +_WnckLayoutCorner +_WnckLayoutOrientation + +WNCK_SCREEN +WNCK_IS_SCREEN +WNCK_TYPE_SCREEN +WNCK_SCREEN_CLASS +WNCK_IS_SCREEN_CLASS +WNCK_SCREEN_GET_CLASS +WnckScreenClass +
+ +# Widgets + +
+pager +WnckPager +WnckPager +wnck_pager_new +wnck_pager_set_orientation +wnck_pager_set_n_rows +WnckPagerDisplayMode +wnck_pager_set_display_mode +wnck_pager_set_show_all +wnck_pager_set_shadow_type + +WnckPagerPrivate +wnck_pager_get_type + +WNCK_PAGER +WNCK_IS_PAGER +WNCK_TYPE_PAGER +WNCK_PAGER_CLASS +WNCK_IS_PAGER_CLASS +WNCK_PAGER_GET_CLASS +WnckPagerClass +
+ +
+selector +WnckSelector +WnckSelector +wnck_selector_new + +WnckSelectorPrivate +wnck_selector_get_type + +WNCK_SELECTOR +WNCK_IS_SELECTOR +WNCK_TYPE_SELECTOR +WNCK_SELECTOR_CLASS +WNCK_IS_SELECTOR_CLASS +WNCK_SELECTOR_GET_CLASS +WnckSelectorClass +
+ +
+tasklist +WnckTasklist +WnckTasklist +wnck_tasklist_new +WnckTasklistGroupingType +wnck_tasklist_set_grouping +wnck_tasklist_set_grouping_limit +wnck_tasklist_set_include_all_workspaces +wnck_tasklist_set_switch_workspace_on_unminimize +wnck_tasklist_set_button_relief +WnckLoadIconFunction +wnck_tasklist_set_icon_loader +wnck_tasklist_get_size_hint_list + +WnckTasklistPrivate +wnck_tasklist_get_type + +WNCK_TASKLIST +WNCK_IS_TASKLIST +WNCK_TYPE_TASKLIST +WNCK_TASKLIST_CLASS +WNCK_IS_TASKLIST_CLASS +WNCK_TASKLIST_GET_CLASS +WnckTasklistClass +
+ +# Utilities + +
+window-action-menu +Window Action Menu +WnckActionMenu +wnck_action_menu_new + +WnckActionMenuPrivate +wnck_action_menu_get_type + +WNCK_ACTION_MENU +WNCK_IS_ACTION_MENU +WNCK_TYPE_ACTION_MENU +WNCK_ACTION_MENU_CLASS +WNCK_IS_ACTION_MENU_CLASS +WNCK_ACTION_MENU_GET_CLASS +WnckActionMenuClass +
+ +
+resource +Resource Usage of X Clients +WnckResourceUsage +wnck_xid_read_resource_usage +wnck_pid_read_resource_usage +
+ +
+icons +Icons Functions +WNCK_DEFAULT_ICON_SIZE +WNCK_DEFAULT_MINI_ICON_SIZE +wnck_set_default_icon_size +wnck_set_default_mini_icon_size +
+ +
+misc +Miscellaneous Functions +WnckClientType +wnck_set_client_type +wnck_shutdown +
+ +
+version +Version Information +WNCK_MAJOR_VERSION +WNCK_MINOR_VERSION +WNCK_MICRO_VERSION +WNCK_CHECK_VERSION +#
+ +# Ignored + +#
+ +#pager-accessible-factory +#WnckPagerAccessibleFactory +WnckPagerAccessibleFactory +wnck_pager_accessible_factory_new + +wnck_pager_accessible_factory_get_type +# +WNCK_PAGER_ACCESSIBLE_FACTORY +WNCK_IS_PAGER_ACCESSIBLE_FACTORY +WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY +WNCK_PAGER_ACCESSIBLE_FACTORY_CLASS +WNCK_IS_PAGER_ACCESSIBLE_FACTORY_CLASS +WNCK_PAGER_ACCESSIBLE_FACTORY_GET_CLASS +WnckPagerAccessibleFactoryClass +#
+# +#
+#pager-accessible +#WnckPagerAccessible +WnckPagerAccessible +wnck_pager_accessible_new + +wnck_pager_accessible_get_type +# +WNCK_PAGER_ACCESSIBLE +WNCK_PAGER_IS_ACCESSIBLE +WNCK_PAGER_TYPE_ACCESSIBLE +WNCK_PAGER_ACCESSIBLE_CLASS +WNCK_PAGER_IS_ACCESSIBLE_CLASS +WNCK_PAGER_ACCESSIBLE_GET_CLASS +WnckPagerAccessibleClass +#
+# +#
+#workspace-accessible-factory +#WnckWorkspaceAccessibleFactory +WnckWorkspaceAccessibleFactory +wnck_workspace_accessible_factory_new + +wnck_workspace_accessible_factory_get_type +# +WNCK_WORKSPACE_ACCESSIBLE_FACTORY +WNCK_IS_WORKSPACE_ACCESSIBLE_FACTORY +WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY +WNCK_WORKSPACE_ACCESSIBLE_FACTORY_CLASS +WNCK_IS_WORKSPACE_ACCESSIBLE_FACTORY_CLASS +WNCK_WORKSPACE_ACCESSIBLE_FACTORY_GET_CLASS +WnckWorkspaceAccessibleFactoryClass +#
+# +#
+#workspace-accessible +#WnckWorkspaceAccessible +WnckWorkspaceAccessible +wnck_workspace_accessible_new + +wnck_workspace_accessible_get_type +# +WNCK_WORKSPACE_ACCESSIBLE +WNCK_IS_WORKSPACE_ACCESSIBLE +WNCK_WORKSPACE_TYPE_ACCESSIBLE +WNCK_WORKSPACE_ACCESSIBLE_CLASS +WNCK_IS_WORKSPACE_ACCESSIBLE_CLASS +WNCK_WORKSPACE_ACCESSIBLE_GET_CLASS +WnckWorkspaceAccessibleClass +#
+# +#
+#private + +WNCK_ACTIVATE_TIMEOUT +WNCK_SCREEN_XSCREEN +#
+# +#
+#xutils + +WNCK_APP_WINDOW_EVENT_MASK +WnckIconCache +WNCK_NO_MANAGER_TOKEN +#
+# +#
+#wnck-enum-types + +wnck_client_type_get_type +WNCK_TYPE_CLIENT_TYPE +wnck_motion_direction_get_type +WNCK_TYPE_MOTION_DIRECTION +wnck_pager_display_mode_get_type +WNCK_TYPE_PAGER_DISPLAY_MODE +wnck_tasklist_grouping_type_get_type +WNCK_TYPE_TASKLIST_GROUPING_TYPE +wnck_window_state_get_type +WNCK_TYPE_WINDOW_STATE +wnck_window_actions_get_type +WNCK_TYPE_WINDOW_ACTIONS +wnck_window_gravity_get_type +WNCK_TYPE_WINDOW_GRAVITY +wnck_window_move_resize_mask_get_type +WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK +wnck_window_type_get_type +WNCK_TYPE_WINDOW_TYPE +
diff --git a/doc/libwnck.types b/doc/libwnck.types new file mode 100644 index 0000000..1efca93 --- /dev/null +++ b/doc/libwnck.types @@ -0,0 +1,13 @@ +#include +#include + +wnck_window_get_type +wnck_class_group_get_type +wnck_application_get_type +wnck_workspace_get_type +wnck_screen_get_type + +wnck_action_menu_get_type +wnck_pager_get_type +wnck_selector_get_type +wnck_tasklist_get_type diff --git a/gtk-doc.make b/gtk-doc.make new file mode 100644 index 0000000..2454c28 --- /dev/null +++ b/gtk-doc.make @@ -0,0 +1,305 @@ +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = $(LIBTOOL) --mode=execute +else +GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +GTKDOC_RUN = +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +SETUP_FILES = \ + $(content_files) \ + $(expand_content_files) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +EXTRA_DIST = \ + $(HTML_IMAGES) \ + $(SETUP_FILES) + +DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ + html-build.stamp pdf-build.stamp \ + sgml.stamp html.stamp pdf.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +gtkdoc-check.test: Makefile + $(AM_V_GEN)echo "#!/bin/sh -e" > $@; \ + echo "$(GTKDOC_CHECK_PATH) || exit 1" >> $@; \ + chmod +x $@ + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test + +if GTK_DOC_BUILD_HTML +HTML_BUILD_STAMP=html-build.stamp +else +HTML_BUILD_STAMP= +endif +if GTK_DOC_BUILD_PDF +PDF_BUILD_STAMP=pdf-build.stamp +else +PDF_BUILD_STAMP= +endif + +all-gtk-doc: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) +.PHONY: all-gtk-doc + +if ENABLE_GTK_DOC +all-local: all-gtk-doc +endif + +docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) + +$(REPORT_FILES): sgml-build.stamp + +#### setup #### + +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; + +setup-build.stamp: + -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ + fi + $(AM_V_at)touch setup-build.stamp + + +#### scan #### + +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; + +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; + +scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) + $(GTK_DOC_V_SCAN)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) + $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ + fi; \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + $(AM_V_at)touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML_0=@echo " DOC Building XML"; + +sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent + $(GTK_DOC_V_XML)_source_dir='' ; \ + for i in $(DOC_SOURCE_DIR) ; do \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ + done ; \ + gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) + $(AM_V_at)touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +xml/gtkdocentities.ent: Makefile + $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + echo ""; \ + ) > $@ + +#### html #### + +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; + +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_HTML)rm -rf html && mkdir html && \ + mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkhtml_options="$$mkhtml_options --verbose"; \ + fi; \ + fi; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$$?" = "0"; then \ + mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + -@test "x$(HTML_IMAGES)" = "x" || \ + for file in $(HTML_IMAGES) ; do \ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ + if test -f $(abs_builddir)/$$file ; then \ + cp $(abs_builddir)/$$file $(abs_builddir)/html; \ + fi; \ + test -f $$file && cp $$file $(abs_builddir)/html; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + $(AM_V_at)touch html-build.stamp + +#### pdf #### + +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; + +pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) + $(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \ + mkpdf_options=""; \ + gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + mkpdf_options="$$mkpdf_options --verbose"; \ + fi; \ + fi; \ + if test "x$(HTML_IMAGES)" != "x"; then \ + for img in $(HTML_IMAGES); do \ + part=`dirname $$img`; \ + echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ + if test $$? != 0; then \ + mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ + fi; \ + done; \ + fi; \ + gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) + $(AM_V_at)touch pdf-build.stamp + +############## + +clean-local: + @rm -f *~ *.bak + @rm -rf .libs + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \ + rm -f $(DOC_MODULE).types; \ + fi + @if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \ + rm -f $(DOC_MODULE)-sections.txt; \ + fi + +distclean-local: + @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(SETUP_FILES) $(DOC_MODULE).types; \ + fi + +maintainer-clean-local: + @rm -rf xml html + +install-data-local: + @installfiles=`echo $(builddir)/html/*`; \ + if test "$$installfiles" = '$(builddir)/html/*'; \ + then echo 1>&2 'Nothing to install' ; \ + else \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + $(mkinstalldirs) $${installdir} ; \ + for i in $$installfiles; do \ + echo ' $(INSTALL_DATA) '$$i ; \ + $(INSTALL_DATA) $$i $${installdir}; \ + done; \ + if test -n "$(DOC_MODULE_VERSION)"; then \ + mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ + $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ + fi; \ + $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ + fi + +uninstall-local: + @if test -n "$(DOC_MODULE_VERSION)"; then \ + installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ + else \ + installdir="$(DESTDIR)$(TARGET_DIR)"; \ + fi; \ + rm -rf $${installdir} + +# +# Require gtk-doc when making dist +# +if HAVE_GTK_DOC +dist-check-gtkdoc: docs +else +dist-check-gtkdoc: + @echo "*** gtk-doc is needed to run 'make dist'. ***" + @echo "*** gtk-doc was not found when 'configure' ran. ***" + @echo "*** please install gtk-doc and rerun 'configure'. ***" + @false +endif + +dist-hook: dist-check-gtkdoc all-gtk-doc dist-hook-local + @mkdir $(distdir)/html + @cp ./html/* $(distdir)/html + @-cp ./$(DOC_MODULE).pdf $(distdir)/ + @-cp ./$(DOC_MODULE).types $(distdir)/ + @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ + @cd $(distdir) && rm -f $(DISTCLEANFILES) + @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/libwnck-3.0-uninstalled.pc.in b/libwnck-3.0-uninstalled.pc.in new file mode 100644 index 0000000..e6782a2 --- /dev/null +++ b/libwnck-3.0-uninstalled.pc.in @@ -0,0 +1,13 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libwnck +Description: Window Navigator Construction Kit library +Version: @VERSION@ +Requires: glib-2.0 gobject-2.0 gtk+-3.0 +Requires.private: @X11_PACKAGE@ pango cairo @STARTUP_NOTIFICATION_PACKAGE@ @XRES_PACKAGE@ +Libs: ${pc_top_builddir}/${pcfiledir}/libwnck/libwnck-3.la +Cflags: -I${pc_top_builddir}/${pcfiledir} + diff --git a/libwnck-3.0.pc.in b/libwnck-3.0.pc.in new file mode 100644 index 0000000..f7820e1 --- /dev/null +++ b/libwnck-3.0.pc.in @@ -0,0 +1,13 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libwnck +Description: Window Navigator Construction Kit library +Version: @VERSION@ +Requires: glib-2.0 gobject-2.0 gtk+-3.0 +Requires.private: @X11_PACKAGE@ pango cairo @STARTUP_NOTIFICATION_PACKAGE@ @XRES_PACKAGE@ +Libs: -L${libdir} -lwnck-3 +Cflags: -I${includedir}/libwnck-3.0 + diff --git a/libwnck/Makefile.am b/libwnck/Makefile.am new file mode 100644 index 0000000..6b6c7f8 --- /dev/null +++ b/libwnck/Makefile.am @@ -0,0 +1,200 @@ +NULL = + +lib_LTLIBRARIES = libwnck-3.la +bin_PROGRAMS = +noinst_PROGRAMS = \ + test-pager \ + test-wnck \ + test-selector \ + test-tasklist \ + test-urgent \ + test-shutdown + +if ENABLE_TOOLS +bin_PROGRAMS += \ + wnckprop \ + wnck-urgency-monitor +else +noinst_PROGRAMS += \ + wnckprop \ + wnck-urgency-monitor +endif + +AM_CPPFLAGS = \ + $(LIBWNCK_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DWNCK_I_KNOW_THIS_IS_UNSTABLE \ + -DWNCK_LOCALEDIR=\"$(localedir)\" \ + $(DISABLE_DEPRECATED_CFLAGS) + +AM_CFLAGS = $(WARN_CFLAGS) + +wnck_headers = \ + libwnck.h \ + pager.h \ + application.h \ + class-group.h \ + screen.h \ + selector.h \ + tasklist.h \ + util.h \ + window.h \ + window-action-menu.h \ + workspace.h + +libwnckincludedir = $(includedir)/libwnck-3.0/libwnck +libwnckinclude_HEADERS = \ + $(wnck_headers) \ + wnck-enum-types.h \ + version.h + +# Sources that are relevant for introspection +wnck_sources = \ + application.c \ + class-group.c \ + pager.c \ + screen.c \ + selector.c \ + tasklist.c \ + util.c \ + window.c \ + window-action-menu.c \ + workspace.c + +wnck_accessibility_files = \ + pager-accessible.c \ + pager-accessible.h \ + pager-accessible-factory.c \ + pager-accessible-factory.h \ + workspace-accessible.c \ + workspace-accessible.h \ + workspace-accessible-factory.c \ + workspace-accessible-factory.h + +libwnck_3_la_SOURCES = \ + $(BUILT_SOURCES) \ + $(wnck_sources) \ + private.h \ + xutils.c \ + xutils.h \ + wnck-image-menu-item.c \ + wnck-image-menu-item-private.h \ + $(wnck_accessibility_files) + +libwnck_3_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(XLIB_CFLAGS) \ + -DG_LOG_DOMAIN=\"Wnck\" \ + -DWNCK_COMPILATION \ + -DSN_API_NOT_YET_FROZEN=1 + +libwnck_3_la_LIBADD = \ + $(LIBWNCK_LIBS) \ + $(XLIB_LIBS) \ + $(LIBM) + +libwnck_3_la_LDFLAGS = \ + -version-info $(LIBWNCK_CURRENT):$(LIBWNCK_REVISION):$(LIBWNCK_AGE) \ + -no-undefined \ + -export-symbols-regex "^[^_].*" \ + $(WARN_LDFLAGS) \ + $(AM_LDFLAGS) \ + $(NULL) + +wnckprop_SOURCES = wnckprop.c +wnck_urgency_monitor_SOURCES = wnck-urgency-monitor.c +test_wnck_SOURCES = test-wnck.c +test_tasklist_SOURCES = test-tasklist.c +test_selector_SOURCES = test-selector.c +test_pager_SOURCES = test-pager.c +test_urgent_SOURCES = test-urgent.c +test_shutdown_SOURCES = test-shutdown.c + +wnckprop_LDADD = $(LIBWNCK_LIBS) $(XLIB_LIBS) ./$(lib_LTLIBRARIES) +wnck_urgency_monitor_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_wnck_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_tasklist_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_selector_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_pager_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_urgent_LDADD = $(LIBWNCK_LIBS) +test_shutdown_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) + +wnck-enum-types.h: $(wnck_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION)\n" \ + --fhead "#error \"Only can be included directly.\"\n" \ + --fhead "#endif\n\n" \ + --fhead "#ifndef __WNCK_ENUM_TYPES_H__\n" \ + --fhead "#define __WNCK_ENUM_TYPES_H__\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* __WNCK_ENUM_TYPES_H__ */\n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n" \ + --eprod "#define WNCK_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \ + --eprod "GType @enum_name@_get_type (void);\n" \ + $^ > $@ + +wnck-enum-types.c: $(wnck_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType\n@enum_name@_get_type (void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (!type)\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + $^ > $@ + +wnck-resources.h wnck-resources.c: wnck.gresource.xml \ + $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/wnck.gresource.xml) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name libwnck $< + +BUILT_SOURCES = \ + wnck-enum-types.c \ + wnck-enum-types.h \ + wnck-resources.c \ + wnck-resources.h \ + $(NULL) + +CLEANFILES = \ + $(BUILT_SOURCES) \ + $(NULL) + +EXTRA_DIST = \ + default_icon.png \ + wnck.css \ + wnck.gresource.xml \ + version.h.in \ + $(NULL) + +# Introspection +-include $(INTROSPECTION_MAKEFILE) +INTROSPECTION_GIRS = +INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(srcdir) --c-include="libwnck/libwnck.h" +INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) + +if HAVE_INTROSPECTION +introspection_sources = $(wnck_sources) $(libwnckinclude_HEADERS) + +Wnck-3.0.gir: libwnck-3.la +Wnck_3_0_gir_INCLUDES = GObject-2.0 GdkPixbuf-2.0 Gtk-3.0 +Wnck_3_0_gir_CFLAGS = $(libwnck_3_la_CPPFLAGS) +Wnck_3_0_gir_LIBS = libwnck-3.la +Wnck_3_0_gir_SCANNERFLAGS = --pkg-export=libwnck-3.0 $(WARN_SCANNERFLAGS) +Wnck_3_0_gir_FILES = $(introspection_sources) +INTROSPECTION_GIRS += Wnck-3.0.gir + +girdir = $(INTROSPECTION_GIRDIR) +gir_DATA = $(INTROSPECTION_GIRS) + +typelibdir = $(INTROSPECTION_TYPELIBDIR) +typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) + +CLEANFILES += $(gir_DATA) $(typelib_DATA) +endif + +-include $(top_srcdir)/git.mk diff --git a/libwnck/Makefile.in b/libwnck/Makefile.in new file mode 100644 index 0000000..426b1b5 --- /dev/null +++ b/libwnck/Makefile.in @@ -0,0 +1,1289 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = $(am__EXEEXT_1) +noinst_PROGRAMS = test-pager$(EXEEXT) test-wnck$(EXEEXT) \ + test-selector$(EXEEXT) test-tasklist$(EXEEXT) \ + test-urgent$(EXEEXT) test-shutdown$(EXEEXT) $(am__EXEEXT_2) +@ENABLE_TOOLS_TRUE@am__append_1 = \ +@ENABLE_TOOLS_TRUE@ wnckprop \ +@ENABLE_TOOLS_TRUE@ wnck-urgency-monitor + +@ENABLE_TOOLS_FALSE@am__append_2 = \ +@ENABLE_TOOLS_FALSE@ wnckprop \ +@ENABLE_TOOLS_FALSE@ wnck-urgency-monitor + +@HAVE_INTROSPECTION_TRUE@am__append_3 = Wnck-3.0.gir +@HAVE_INTROSPECTION_TRUE@am__append_4 = $(gir_DATA) $(typelib_DATA) +subdir = libwnck +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_append_compile_flags.m4 \ + $(top_srcdir)/m4/ax_append_flag.m4 \ + $(top_srcdir)/m4/ax_append_link_flags.m4 \ + $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_check_enable_debug.m4 \ + $(top_srcdir)/m4/ax_check_link_flag.m4 \ + $(top_srcdir)/m4/ax_compiler_flags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_cflags.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_gir.m4 \ + $(top_srcdir)/m4/ax_compiler_flags_ldflags.m4 \ + $(top_srcdir)/m4/ax_is_release.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gtk-doc.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(libwnckinclude_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = version.h +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)" \ + "$(DESTDIR)$(libwnckincludedir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +am__DEPENDENCIES_1 = +libwnck_3_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am__objects_1 = +am__objects_2 = libwnck_3_la-wnck-enum-types.lo \ + libwnck_3_la-wnck-resources.lo $(am__objects_1) +am__objects_3 = libwnck_3_la-application.lo \ + libwnck_3_la-class-group.lo libwnck_3_la-pager.lo \ + libwnck_3_la-screen.lo libwnck_3_la-selector.lo \ + libwnck_3_la-tasklist.lo libwnck_3_la-util.lo \ + libwnck_3_la-window.lo libwnck_3_la-window-action-menu.lo \ + libwnck_3_la-workspace.lo +am__objects_4 = libwnck_3_la-pager-accessible.lo \ + libwnck_3_la-pager-accessible-factory.lo \ + libwnck_3_la-workspace-accessible.lo \ + libwnck_3_la-workspace-accessible-factory.lo +am_libwnck_3_la_OBJECTS = $(am__objects_2) $(am__objects_3) \ + libwnck_3_la-xutils.lo libwnck_3_la-wnck-image-menu-item.lo \ + $(am__objects_4) +libwnck_3_la_OBJECTS = $(am_libwnck_3_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libwnck_3_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libwnck_3_la_LDFLAGS) $(LDFLAGS) -o $@ +@ENABLE_TOOLS_TRUE@am__EXEEXT_1 = wnckprop$(EXEEXT) \ +@ENABLE_TOOLS_TRUE@ wnck-urgency-monitor$(EXEEXT) +@ENABLE_TOOLS_FALSE@am__EXEEXT_2 = wnckprop$(EXEEXT) \ +@ENABLE_TOOLS_FALSE@ wnck-urgency-monitor$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) +am_test_pager_OBJECTS = test-pager.$(OBJEXT) +test_pager_OBJECTS = $(am_test_pager_OBJECTS) +test_pager_DEPENDENCIES = $(am__DEPENDENCIES_1) ./$(lib_LTLIBRARIES) +am_test_selector_OBJECTS = test-selector.$(OBJEXT) +test_selector_OBJECTS = $(am_test_selector_OBJECTS) +test_selector_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + ./$(lib_LTLIBRARIES) +am_test_shutdown_OBJECTS = test-shutdown.$(OBJEXT) +test_shutdown_OBJECTS = $(am_test_shutdown_OBJECTS) +test_shutdown_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + ./$(lib_LTLIBRARIES) +am_test_tasklist_OBJECTS = test-tasklist.$(OBJEXT) +test_tasklist_OBJECTS = $(am_test_tasklist_OBJECTS) +test_tasklist_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + ./$(lib_LTLIBRARIES) +am_test_urgent_OBJECTS = test-urgent.$(OBJEXT) +test_urgent_OBJECTS = $(am_test_urgent_OBJECTS) +test_urgent_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_test_wnck_OBJECTS = test-wnck.$(OBJEXT) +test_wnck_OBJECTS = $(am_test_wnck_OBJECTS) +test_wnck_DEPENDENCIES = $(am__DEPENDENCIES_1) ./$(lib_LTLIBRARIES) +am_wnck_urgency_monitor_OBJECTS = wnck-urgency-monitor.$(OBJEXT) +wnck_urgency_monitor_OBJECTS = $(am_wnck_urgency_monitor_OBJECTS) +wnck_urgency_monitor_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + ./$(lib_LTLIBRARIES) +am_wnckprop_OBJECTS = wnckprop.$(OBJEXT) +wnckprop_OBJECTS = $(am_wnckprop_OBJECTS) +wnckprop_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + ./$(lib_LTLIBRARIES) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libwnck_3_la_SOURCES) $(test_pager_SOURCES) \ + $(test_selector_SOURCES) $(test_shutdown_SOURCES) \ + $(test_tasklist_SOURCES) $(test_urgent_SOURCES) \ + $(test_wnck_SOURCES) $(wnck_urgency_monitor_SOURCES) \ + $(wnckprop_SOURCES) +DIST_SOURCES = $(libwnck_3_la_SOURCES) $(test_pager_SOURCES) \ + $(test_selector_SOURCES) $(test_shutdown_SOURCES) \ + $(test_tasklist_SOURCES) $(test_urgent_SOURCES) \ + $(test_wnck_SOURCES) $(wnck_urgency_monitor_SOURCES) \ + $(wnckprop_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(gir_DATA) $(typelib_DATA) +HEADERS = $(libwnckinclude_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.h.in \ + $(top_srcdir)/build-aux/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISABLE_DEPRECATED_CFLAGS = @DISABLE_DEPRECATED_CFLAGS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GLIB_COMPILE_RESOURCES = @GLIB_COMPILE_RESOURCES@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTKDOC_CHECK_PATH = @GTKDOC_CHECK_PATH@ +GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@ +GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@ +GTKDOC_MKPDF = @GTKDOC_MKPDF@ +GTKDOC_REBASE = @GTKDOC_REBASE@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@ +INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@ +INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@ +INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@ +INTROSPECTION_LIBS = @INTROSPECTION_LIBS@ +INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@ +INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@ +INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBWNCK_AGE = @LIBWNCK_AGE@ +LIBWNCK_CFLAGS = @LIBWNCK_CFLAGS@ +LIBWNCK_CURRENT = @LIBWNCK_CURRENT@ +LIBWNCK_LIBS = @LIBWNCK_LIBS@ +LIBWNCK_REVISION = @LIBWNCK_REVISION@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STARTUP_NOTIFICATION_CFLAGS = @STARTUP_NOTIFICATION_CFLAGS@ +STARTUP_NOTIFICATION_LIBS = @STARTUP_NOTIFICATION_LIBS@ +STARTUP_NOTIFICATION_PACKAGE = @STARTUP_NOTIFICATION_PACKAGE@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WARN_CFLAGS = @WARN_CFLAGS@ +WARN_LDFLAGS = @WARN_LDFLAGS@ +WARN_SCANNERFLAGS = @WARN_SCANNERFLAGS@ +WNCK_MAJOR_VERSION = @WNCK_MAJOR_VERSION@ +WNCK_MICRO_VERSION = @WNCK_MICRO_VERSION@ +WNCK_MINOR_VERSION = @WNCK_MINOR_VERSION@ +X11_PACKAGE = @X11_PACKAGE@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XLIB_CFLAGS = @XLIB_CFLAGS@ +XLIB_LIBS = @XLIB_LIBS@ +XMKMF = @XMKMF@ +XRES_PACKAGE = @XRES_PACKAGE@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +NULL = +lib_LTLIBRARIES = libwnck-3.la +AM_CPPFLAGS = \ + $(LIBWNCK_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_builddir) \ + -DWNCK_I_KNOW_THIS_IS_UNSTABLE \ + -DWNCK_LOCALEDIR=\"$(localedir)\" \ + $(DISABLE_DEPRECATED_CFLAGS) + +AM_CFLAGS = $(WARN_CFLAGS) +wnck_headers = \ + libwnck.h \ + pager.h \ + application.h \ + class-group.h \ + screen.h \ + selector.h \ + tasklist.h \ + util.h \ + window.h \ + window-action-menu.h \ + workspace.h + +libwnckincludedir = $(includedir)/libwnck-3.0/libwnck +libwnckinclude_HEADERS = \ + $(wnck_headers) \ + wnck-enum-types.h \ + version.h + + +# Sources that are relevant for introspection +wnck_sources = \ + application.c \ + class-group.c \ + pager.c \ + screen.c \ + selector.c \ + tasklist.c \ + util.c \ + window.c \ + window-action-menu.c \ + workspace.c + +wnck_accessibility_files = \ + pager-accessible.c \ + pager-accessible.h \ + pager-accessible-factory.c \ + pager-accessible-factory.h \ + workspace-accessible.c \ + workspace-accessible.h \ + workspace-accessible-factory.c \ + workspace-accessible-factory.h + +libwnck_3_la_SOURCES = \ + $(BUILT_SOURCES) \ + $(wnck_sources) \ + private.h \ + xutils.c \ + xutils.h \ + wnck-image-menu-item.c \ + wnck-image-menu-item-private.h \ + $(wnck_accessibility_files) + +libwnck_3_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(XLIB_CFLAGS) \ + -DG_LOG_DOMAIN=\"Wnck\" \ + -DWNCK_COMPILATION \ + -DSN_API_NOT_YET_FROZEN=1 + +libwnck_3_la_LIBADD = \ + $(LIBWNCK_LIBS) \ + $(XLIB_LIBS) \ + $(LIBM) + +libwnck_3_la_LDFLAGS = \ + -version-info $(LIBWNCK_CURRENT):$(LIBWNCK_REVISION):$(LIBWNCK_AGE) \ + -no-undefined \ + -export-symbols-regex "^[^_].*" \ + $(WARN_LDFLAGS) \ + $(AM_LDFLAGS) \ + $(NULL) + +wnckprop_SOURCES = wnckprop.c +wnck_urgency_monitor_SOURCES = wnck-urgency-monitor.c +test_wnck_SOURCES = test-wnck.c +test_tasklist_SOURCES = test-tasklist.c +test_selector_SOURCES = test-selector.c +test_pager_SOURCES = test-pager.c +test_urgent_SOURCES = test-urgent.c +test_shutdown_SOURCES = test-shutdown.c +wnckprop_LDADD = $(LIBWNCK_LIBS) $(XLIB_LIBS) ./$(lib_LTLIBRARIES) +wnck_urgency_monitor_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_wnck_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_tasklist_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_selector_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_pager_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +test_urgent_LDADD = $(LIBWNCK_LIBS) +test_shutdown_LDADD = $(LIBWNCK_LIBS) ./$(lib_LTLIBRARIES) +BUILT_SOURCES = \ + wnck-enum-types.c \ + wnck-enum-types.h \ + wnck-resources.c \ + wnck-resources.h \ + $(NULL) + +CLEANFILES = $(BUILT_SOURCES) $(NULL) $(am__append_4) +EXTRA_DIST = \ + default_icon.png \ + wnck.css \ + wnck.gresource.xml \ + version.h.in \ + $(NULL) + +INTROSPECTION_GIRS = $(am__append_3) +INTROSPECTION_SCANNER_ARGS = --warn-all --add-include-path=$(srcdir) --c-include="libwnck/libwnck.h" +INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) +@HAVE_INTROSPECTION_TRUE@introspection_sources = $(wnck_sources) $(libwnckinclude_HEADERS) +@HAVE_INTROSPECTION_TRUE@Wnck_3_0_gir_INCLUDES = GObject-2.0 GdkPixbuf-2.0 Gtk-3.0 +@HAVE_INTROSPECTION_TRUE@Wnck_3_0_gir_CFLAGS = $(libwnck_3_la_CPPFLAGS) +@HAVE_INTROSPECTION_TRUE@Wnck_3_0_gir_LIBS = libwnck-3.la +@HAVE_INTROSPECTION_TRUE@Wnck_3_0_gir_SCANNERFLAGS = --pkg-export=libwnck-3.0 $(WARN_SCANNERFLAGS) +@HAVE_INTROSPECTION_TRUE@Wnck_3_0_gir_FILES = $(introspection_sources) +@HAVE_INTROSPECTION_TRUE@girdir = $(INTROSPECTION_GIRDIR) +@HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS) +@HAVE_INTROSPECTION_TRUE@typelibdir = $(INTROSPECTION_TYPELIBDIR) +@HAVE_INTROSPECTION_TRUE@typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu libwnck/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu libwnck/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +version.h: $(top_builddir)/config.status $(srcdir)/version.h.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libwnck-3.la: $(libwnck_3_la_OBJECTS) $(libwnck_3_la_DEPENDENCIES) $(EXTRA_libwnck_3_la_DEPENDENCIES) + $(AM_V_CCLD)$(libwnck_3_la_LINK) -rpath $(libdir) $(libwnck_3_la_OBJECTS) $(libwnck_3_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p \ + || test -f $$p1 \ + ; then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' \ + -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' \ + `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + +test-pager$(EXEEXT): $(test_pager_OBJECTS) $(test_pager_DEPENDENCIES) $(EXTRA_test_pager_DEPENDENCIES) + @rm -f test-pager$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_pager_OBJECTS) $(test_pager_LDADD) $(LIBS) + +test-selector$(EXEEXT): $(test_selector_OBJECTS) $(test_selector_DEPENDENCIES) $(EXTRA_test_selector_DEPENDENCIES) + @rm -f test-selector$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_selector_OBJECTS) $(test_selector_LDADD) $(LIBS) + +test-shutdown$(EXEEXT): $(test_shutdown_OBJECTS) $(test_shutdown_DEPENDENCIES) $(EXTRA_test_shutdown_DEPENDENCIES) + @rm -f test-shutdown$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_shutdown_OBJECTS) $(test_shutdown_LDADD) $(LIBS) + +test-tasklist$(EXEEXT): $(test_tasklist_OBJECTS) $(test_tasklist_DEPENDENCIES) $(EXTRA_test_tasklist_DEPENDENCIES) + @rm -f test-tasklist$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_tasklist_OBJECTS) $(test_tasklist_LDADD) $(LIBS) + +test-urgent$(EXEEXT): $(test_urgent_OBJECTS) $(test_urgent_DEPENDENCIES) $(EXTRA_test_urgent_DEPENDENCIES) + @rm -f test-urgent$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_urgent_OBJECTS) $(test_urgent_LDADD) $(LIBS) + +test-wnck$(EXEEXT): $(test_wnck_OBJECTS) $(test_wnck_DEPENDENCIES) $(EXTRA_test_wnck_DEPENDENCIES) + @rm -f test-wnck$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(test_wnck_OBJECTS) $(test_wnck_LDADD) $(LIBS) + +wnck-urgency-monitor$(EXEEXT): $(wnck_urgency_monitor_OBJECTS) $(wnck_urgency_monitor_DEPENDENCIES) $(EXTRA_wnck_urgency_monitor_DEPENDENCIES) + @rm -f wnck-urgency-monitor$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(wnck_urgency_monitor_OBJECTS) $(wnck_urgency_monitor_LDADD) $(LIBS) + +wnckprop$(EXEEXT): $(wnckprop_OBJECTS) $(wnckprop_DEPENDENCIES) $(EXTRA_wnckprop_DEPENDENCIES) + @rm -f wnckprop$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(wnckprop_OBJECTS) $(wnckprop_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-application.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-class-group.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-pager-accessible-factory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-pager-accessible.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-pager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-screen.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-selector.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-tasklist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-util.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-window-action-menu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-window.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-wnck-enum-types.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-wnck-image-menu-item.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-wnck-resources.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-workspace-accessible-factory.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-workspace-accessible.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-workspace.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwnck_3_la-xutils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pager.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-selector.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shutdown.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-tasklist.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-urgent.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wnck.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wnck-urgency-monitor.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wnckprop.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libwnck_3_la-wnck-enum-types.lo: wnck-enum-types.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-wnck-enum-types.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-wnck-enum-types.Tpo -c -o libwnck_3_la-wnck-enum-types.lo `test -f 'wnck-enum-types.c' || echo '$(srcdir)/'`wnck-enum-types.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-wnck-enum-types.Tpo $(DEPDIR)/libwnck_3_la-wnck-enum-types.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wnck-enum-types.c' object='libwnck_3_la-wnck-enum-types.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-wnck-enum-types.lo `test -f 'wnck-enum-types.c' || echo '$(srcdir)/'`wnck-enum-types.c + +libwnck_3_la-wnck-resources.lo: wnck-resources.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-wnck-resources.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-wnck-resources.Tpo -c -o libwnck_3_la-wnck-resources.lo `test -f 'wnck-resources.c' || echo '$(srcdir)/'`wnck-resources.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-wnck-resources.Tpo $(DEPDIR)/libwnck_3_la-wnck-resources.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wnck-resources.c' object='libwnck_3_la-wnck-resources.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-wnck-resources.lo `test -f 'wnck-resources.c' || echo '$(srcdir)/'`wnck-resources.c + +libwnck_3_la-application.lo: application.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-application.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-application.Tpo -c -o libwnck_3_la-application.lo `test -f 'application.c' || echo '$(srcdir)/'`application.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-application.Tpo $(DEPDIR)/libwnck_3_la-application.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='application.c' object='libwnck_3_la-application.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-application.lo `test -f 'application.c' || echo '$(srcdir)/'`application.c + +libwnck_3_la-class-group.lo: class-group.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-class-group.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-class-group.Tpo -c -o libwnck_3_la-class-group.lo `test -f 'class-group.c' || echo '$(srcdir)/'`class-group.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-class-group.Tpo $(DEPDIR)/libwnck_3_la-class-group.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='class-group.c' object='libwnck_3_la-class-group.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-class-group.lo `test -f 'class-group.c' || echo '$(srcdir)/'`class-group.c + +libwnck_3_la-pager.lo: pager.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-pager.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-pager.Tpo -c -o libwnck_3_la-pager.lo `test -f 'pager.c' || echo '$(srcdir)/'`pager.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-pager.Tpo $(DEPDIR)/libwnck_3_la-pager.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pager.c' object='libwnck_3_la-pager.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-pager.lo `test -f 'pager.c' || echo '$(srcdir)/'`pager.c + +libwnck_3_la-screen.lo: screen.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-screen.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-screen.Tpo -c -o libwnck_3_la-screen.lo `test -f 'screen.c' || echo '$(srcdir)/'`screen.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-screen.Tpo $(DEPDIR)/libwnck_3_la-screen.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='screen.c' object='libwnck_3_la-screen.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-screen.lo `test -f 'screen.c' || echo '$(srcdir)/'`screen.c + +libwnck_3_la-selector.lo: selector.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-selector.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-selector.Tpo -c -o libwnck_3_la-selector.lo `test -f 'selector.c' || echo '$(srcdir)/'`selector.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-selector.Tpo $(DEPDIR)/libwnck_3_la-selector.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='selector.c' object='libwnck_3_la-selector.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-selector.lo `test -f 'selector.c' || echo '$(srcdir)/'`selector.c + +libwnck_3_la-tasklist.lo: tasklist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-tasklist.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-tasklist.Tpo -c -o libwnck_3_la-tasklist.lo `test -f 'tasklist.c' || echo '$(srcdir)/'`tasklist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-tasklist.Tpo $(DEPDIR)/libwnck_3_la-tasklist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tasklist.c' object='libwnck_3_la-tasklist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-tasklist.lo `test -f 'tasklist.c' || echo '$(srcdir)/'`tasklist.c + +libwnck_3_la-util.lo: util.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-util.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-util.Tpo -c -o libwnck_3_la-util.lo `test -f 'util.c' || echo '$(srcdir)/'`util.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-util.Tpo $(DEPDIR)/libwnck_3_la-util.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='util.c' object='libwnck_3_la-util.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-util.lo `test -f 'util.c' || echo '$(srcdir)/'`util.c + +libwnck_3_la-window.lo: window.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-window.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-window.Tpo -c -o libwnck_3_la-window.lo `test -f 'window.c' || echo '$(srcdir)/'`window.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-window.Tpo $(DEPDIR)/libwnck_3_la-window.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='window.c' object='libwnck_3_la-window.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-window.lo `test -f 'window.c' || echo '$(srcdir)/'`window.c + +libwnck_3_la-window-action-menu.lo: window-action-menu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-window-action-menu.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-window-action-menu.Tpo -c -o libwnck_3_la-window-action-menu.lo `test -f 'window-action-menu.c' || echo '$(srcdir)/'`window-action-menu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-window-action-menu.Tpo $(DEPDIR)/libwnck_3_la-window-action-menu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='window-action-menu.c' object='libwnck_3_la-window-action-menu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-window-action-menu.lo `test -f 'window-action-menu.c' || echo '$(srcdir)/'`window-action-menu.c + +libwnck_3_la-workspace.lo: workspace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-workspace.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-workspace.Tpo -c -o libwnck_3_la-workspace.lo `test -f 'workspace.c' || echo '$(srcdir)/'`workspace.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-workspace.Tpo $(DEPDIR)/libwnck_3_la-workspace.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='workspace.c' object='libwnck_3_la-workspace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-workspace.lo `test -f 'workspace.c' || echo '$(srcdir)/'`workspace.c + +libwnck_3_la-xutils.lo: xutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-xutils.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-xutils.Tpo -c -o libwnck_3_la-xutils.lo `test -f 'xutils.c' || echo '$(srcdir)/'`xutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-xutils.Tpo $(DEPDIR)/libwnck_3_la-xutils.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xutils.c' object='libwnck_3_la-xutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-xutils.lo `test -f 'xutils.c' || echo '$(srcdir)/'`xutils.c + +libwnck_3_la-wnck-image-menu-item.lo: wnck-image-menu-item.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-wnck-image-menu-item.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-wnck-image-menu-item.Tpo -c -o libwnck_3_la-wnck-image-menu-item.lo `test -f 'wnck-image-menu-item.c' || echo '$(srcdir)/'`wnck-image-menu-item.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-wnck-image-menu-item.Tpo $(DEPDIR)/libwnck_3_la-wnck-image-menu-item.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wnck-image-menu-item.c' object='libwnck_3_la-wnck-image-menu-item.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-wnck-image-menu-item.lo `test -f 'wnck-image-menu-item.c' || echo '$(srcdir)/'`wnck-image-menu-item.c + +libwnck_3_la-pager-accessible.lo: pager-accessible.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-pager-accessible.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-pager-accessible.Tpo -c -o libwnck_3_la-pager-accessible.lo `test -f 'pager-accessible.c' || echo '$(srcdir)/'`pager-accessible.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-pager-accessible.Tpo $(DEPDIR)/libwnck_3_la-pager-accessible.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pager-accessible.c' object='libwnck_3_la-pager-accessible.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-pager-accessible.lo `test -f 'pager-accessible.c' || echo '$(srcdir)/'`pager-accessible.c + +libwnck_3_la-pager-accessible-factory.lo: pager-accessible-factory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-pager-accessible-factory.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-pager-accessible-factory.Tpo -c -o libwnck_3_la-pager-accessible-factory.lo `test -f 'pager-accessible-factory.c' || echo '$(srcdir)/'`pager-accessible-factory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-pager-accessible-factory.Tpo $(DEPDIR)/libwnck_3_la-pager-accessible-factory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pager-accessible-factory.c' object='libwnck_3_la-pager-accessible-factory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-pager-accessible-factory.lo `test -f 'pager-accessible-factory.c' || echo '$(srcdir)/'`pager-accessible-factory.c + +libwnck_3_la-workspace-accessible.lo: workspace-accessible.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-workspace-accessible.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-workspace-accessible.Tpo -c -o libwnck_3_la-workspace-accessible.lo `test -f 'workspace-accessible.c' || echo '$(srcdir)/'`workspace-accessible.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-workspace-accessible.Tpo $(DEPDIR)/libwnck_3_la-workspace-accessible.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='workspace-accessible.c' object='libwnck_3_la-workspace-accessible.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-workspace-accessible.lo `test -f 'workspace-accessible.c' || echo '$(srcdir)/'`workspace-accessible.c + +libwnck_3_la-workspace-accessible-factory.lo: workspace-accessible-factory.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libwnck_3_la-workspace-accessible-factory.lo -MD -MP -MF $(DEPDIR)/libwnck_3_la-workspace-accessible-factory.Tpo -c -o libwnck_3_la-workspace-accessible-factory.lo `test -f 'workspace-accessible-factory.c' || echo '$(srcdir)/'`workspace-accessible-factory.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libwnck_3_la-workspace-accessible-factory.Tpo $(DEPDIR)/libwnck_3_la-workspace-accessible-factory.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='workspace-accessible-factory.c' object='libwnck_3_la-workspace-accessible-factory.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwnck_3_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libwnck_3_la-workspace-accessible-factory.lo `test -f 'workspace-accessible-factory.c' || echo '$(srcdir)/'`workspace-accessible-factory.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-girDATA: $(gir_DATA) + @$(NORMAL_INSTALL) + @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(girdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(girdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \ + done + +uninstall-girDATA: + @$(NORMAL_UNINSTALL) + @list='$(gir_DATA)'; test -n "$(girdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir) +install-typelibDATA: $(typelib_DATA) + @$(NORMAL_INSTALL) + @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(typelibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(typelibdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \ + done + +uninstall-typelibDATA: + @$(NORMAL_UNINSTALL) + @list='$(typelib_DATA)'; test -n "$(typelibdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(typelibdir)'; $(am__uninstall_files_from_dir) +install-libwnckincludeHEADERS: $(libwnckinclude_HEADERS) + @$(NORMAL_INSTALL) + @list='$(libwnckinclude_HEADERS)'; test -n "$(libwnckincludedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libwnckincludedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libwnckincludedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwnckincludedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwnckincludedir)" || exit $$?; \ + done + +uninstall-libwnckincludeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(libwnckinclude_HEADERS)'; test -n "$(libwnckincludedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libwnckincludedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(libwnckincludedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstPROGRAMS mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-girDATA install-libwnckincludeHEADERS \ + install-typelibDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-girDATA \ + uninstall-libLTLIBRARIES uninstall-libwnckincludeHEADERS \ + uninstall-typelibDATA + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ + clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-girDATA install-html \ + install-html-am install-info install-info-am \ + install-libLTLIBRARIES install-libwnckincludeHEADERS \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip install-typelibDATA installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ + uninstall-girDATA uninstall-libLTLIBRARIES \ + uninstall-libwnckincludeHEADERS uninstall-typelibDATA + +.PRECIOUS: Makefile + + +wnck-enum-types.h: $(wnck_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION)\n" \ + --fhead "#error \"Only can be included directly.\"\n" \ + --fhead "#endif\n\n" \ + --fhead "#ifndef __WNCK_ENUM_TYPES_H__\n" \ + --fhead "#define __WNCK_ENUM_TYPES_H__\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif /* __WNCK_ENUM_TYPES_H__ */\n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n" \ + --eprod "#define WNCK_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n" \ + --eprod "GType @enum_name@_get_type (void);\n" \ + $^ > $@ + +wnck-enum-types.c: $(wnck_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#include \n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType\n@enum_name@_get_type (void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (!type)\n" \ + --vtail " type = g_@type@_register_static (\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + $^ > $@ + +wnck-resources.h wnck-resources.c: wnck.gresource.xml \ + $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/wnck.gresource.xml) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name libwnck $< + +# Introspection +-include $(INTROSPECTION_MAKEFILE) + +@HAVE_INTROSPECTION_TRUE@Wnck-3.0.gir: libwnck-3.la + +-include $(top_srcdir)/git.mk + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/libwnck/application.c b/libwnck/application.c new file mode 100644 index 0000000..7866079 --- /dev/null +++ b/libwnck/application.c @@ -0,0 +1,738 @@ +/* application object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include "application.h" +#include "private.h" + +/** + * SECTION:application + * @short_description: an object representing a group of windows of the same + * application. + * @see_also: wnck_window_get_application() + * @stability: Unstable + * + * The #WnckApplication is a group of #WnckWindow that are all in the same + * application. It can be used to represent windows by applications, group + * windows by applications or to manipulate all windows of a particular + * application. + * + * A #WnckApplication is identified by the group leader of the #WnckWindow + * belonging to it, and new #WnckWindow are added to a #WnckApplication if and + * only if they have the group leader of the #WnckApplication. + * + * The #WnckApplication objects are always owned by libwnck and must not be + * referenced or unreferenced. + */ + +#define FALLBACK_NAME _("Untitled application") + +static GHashTable *app_hash = NULL; + +struct _WnckApplicationPrivate +{ + Window xwindow; /* group leader */ + WnckScreen *screen; + GList *windows; + int pid; + char *name; + + int orig_event_mask; + + WnckWindow *name_window; /* window we are using name of */ + + GdkPixbuf *icon; + GdkPixbuf *mini_icon; + + WnckIconCache *icon_cache; + + WnckWindow *icon_window; + + char *startup_id; + + guint name_from_leader : 1; /* name is from group leader */ + guint icon_from_leader : 1; + + guint need_emit_icon_changed : 1; +}; + +G_DEFINE_TYPE (WnckApplication, wnck_application, G_TYPE_OBJECT); +#define WNCK_APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_APPLICATION, WnckApplicationPrivate)) + +enum { + NAME_CHANGED, + ICON_CHANGED, + LAST_SIGNAL +}; + +static void emit_name_changed (WnckApplication *app); +static void emit_icon_changed (WnckApplication *app); + +static void reset_name (WnckApplication *app); +static void update_name (WnckApplication *app); + +static void wnck_application_finalize (GObject *object); + +static guint signals[LAST_SIGNAL] = { 0 }; + +void +_wnck_application_shutdown_all (void) +{ + if (app_hash != NULL) + { + g_hash_table_destroy (app_hash); + app_hash = NULL; + } +} + +static void +wnck_application_init (WnckApplication *application) +{ + application->priv = WNCK_APPLICATION_GET_PRIVATE (application); + + application->priv->icon_cache = _wnck_icon_cache_new (); + _wnck_icon_cache_set_want_fallback (application->priv->icon_cache, FALSE); +} + +static void +wnck_application_class_init (WnckApplicationClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckApplicationPrivate)); + + object_class->finalize = wnck_application_finalize; + + /** + * WnckApplication::name-changed: + * @app: the #WnckApplication which emitted the signal. + * + * Emitted when the name of @app changes. + */ + signals[NAME_CHANGED] = + g_signal_new ("name_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckApplicationClass, name_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckApplication::icon-changed: + * @app: the #WnckApplication which emitted the signal. + * + * Emitted when the icon of @app changes. + */ + signals[ICON_CHANGED] = + g_signal_new ("icon_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckApplicationClass, icon_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); +} + +static void +wnck_application_finalize (GObject *object) +{ + WnckApplication *application; + + application = WNCK_APPLICATION (object); + + _wnck_select_input (WNCK_SCREEN_XSCREEN (application->priv->screen), + application->priv->xwindow, + application->priv->orig_event_mask, + FALSE); + + application->priv->xwindow = None; + + g_list_free (application->priv->windows); + application->priv->windows = NULL; + + g_free (application->priv->name); + application->priv->name = NULL; + + if (application->priv->icon) + g_object_unref (G_OBJECT (application->priv->icon)); + application->priv->icon = NULL; + + if (application->priv->mini_icon) + g_object_unref (G_OBJECT (application->priv->mini_icon)); + application->priv->mini_icon = NULL; + + _wnck_icon_cache_free (application->priv->icon_cache); + application->priv->icon_cache = NULL; + + g_free (application->priv->startup_id); + application->priv->startup_id = NULL; + + G_OBJECT_CLASS (wnck_application_parent_class)->finalize (object); +} + +/** + * wnck_application_get: + * @xwindow: the X window ID of a group leader. + * + * Gets the #WnckApplication corresponding to the group leader with @xwindow + * as X window ID. + * + * Return value: (transfer none): the #WnckApplication corresponding to + * @xwindow, or %NULL if there no such #WnckApplication could be found. The + * returned #WnckApplication is owned by libwnck and must not be referenced or + * unreferenced. + */ +WnckApplication* +wnck_application_get (gulong xwindow) +{ + if (app_hash == NULL) + return NULL; + else + return g_hash_table_lookup (app_hash, &xwindow); +} + +/** + * wnck_application_get_xid: + * @app: a #WnckApplication. + * + * Gets the X window ID of the group leader window for @app. + * + * Return value: the X window ID of the group leader window for @app. + **/ +gulong +wnck_application_get_xid (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), 0); + + return app->priv->xwindow; +} + +/** + * wnck_application_get_windows: + * @app: a #WnckApplication. + * + * Gets the list of #WnckWindow belonging to @app. + * + * Return value: (element-type WnckWindow) (transfer none): the list of + * #WnckWindow belonging to @app, or %NULL if the application contains no + * window. The list should not be modified nor freed, as it is owned by @app. + **/ +GList* +wnck_application_get_windows (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + return app->priv->windows; +} + +/** + * wnck_application_get_n_windows: + * @app: a #WnckApplication. + * + * Gets the number of #WnckWindow belonging to @app. + * + * Return value: the number of #WnckWindow belonging to @app. + **/ +int +wnck_application_get_n_windows (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), 0); + + return g_list_length (app->priv->windows); +} + +/** + * wnck_application_get_name: + * @app: a #WnckApplication. + * + * Gets the name of @app. Since there is no way to properly find this name, + * various suboptimal heuristics are used to find it. GTK+ should probably have + * a function to allow applications to set the _NET_WM_NAME property on the + * group leader as the application name, and the EWMH + * should say that this is where the application name goes. + * + * Return value: the name of @app, or a fallback name if no name is available. + **/ +const char* +wnck_application_get_name (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + if (app->priv->name) + return app->priv->name; + else + return FALLBACK_NAME; +} + +/** + * wnck_application_get_icon_name: + * @app: a #WnckApplication + * + * Gets the icon name of @app (to be used when @app is minimized). Since + * there is no way to properly find this name, various suboptimal heuristics + * are used to find it. + * + * Return value: the icon name of @app, or a fallback icon name if no icon name + * is available. + **/ +const char* +wnck_application_get_icon_name (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + /* FIXME this isn't actually implemented, should be different + * from regular name + */ + + if (app->priv->name) + return app->priv->name; + else + return FALLBACK_NAME; +} + +/** + * wnck_application_get_pid: + * @app: a #WnckApplication. + * + * Gets the process ID of @app. + * + * Return value: the process ID of @app, or 0 if none is available. + **/ +int +wnck_application_get_pid (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), 0); + + return app->priv->pid; +} + +static void +get_icons (WnckApplication *app) +{ + GdkPixbuf *icon; + GdkPixbuf *mini_icon; + gsize normal_size; + gsize mini_size; + + icon = NULL; + mini_icon = NULL; + normal_size = _wnck_get_default_icon_size (); + mini_size = _wnck_get_default_mini_icon_size (); + + if (_wnck_read_icons (WNCK_SCREEN_XSCREEN (app->priv->screen), + app->priv->xwindow, + app->priv->icon_cache, + &icon, normal_size, normal_size, + &mini_icon, mini_size, mini_size)) + { + app->priv->need_emit_icon_changed = TRUE; + app->priv->icon_from_leader = TRUE; + + if (app->priv->icon) + g_object_unref (G_OBJECT (app->priv->icon)); + + if (app->priv->mini_icon) + g_object_unref (G_OBJECT (app->priv->mini_icon)); + + app->priv->icon = icon; + app->priv->mini_icon = mini_icon; + } + + /* FIXME we should really fall back to using the icon + * for one of the windows. But then we need to be more + * complicated about icon_changed and when the icon + * needs updating and all that. + */ + + g_assert ((app->priv->icon && app->priv->mini_icon) || + !(app->priv->icon || app->priv->mini_icon)); +} + +void +_wnck_application_load_icons (WnckApplication *app) +{ + g_return_if_fail (WNCK_IS_APPLICATION (app)); + + get_icons (app); + if (app->priv->need_emit_icon_changed) + emit_icon_changed (app); +} + +/* Prefer to get group icon from a window of type "normal" */ +static WnckWindow* +find_icon_window (WnckApplication *app) +{ + GList *tmp; + + tmp = app->priv->windows; + while (tmp != NULL) + { + WnckWindow *w = tmp->data; + + if (wnck_window_get_window_type (w) == WNCK_WINDOW_NORMAL) + return w; + + tmp = tmp->next; + } + + if (app->priv->windows) + return app->priv->windows->data; + else + return NULL; +} + +/** + * wnck_application_get_icon: + * @app: a #WnckApplication. + * + * Gets the icon to be used for @app. If no icon is set for @app, a + * suboptimal heuristic is used to find an appropriate icon. If no icon was + * found, a fallback icon is used. + * + * Return value: (transfer none): the icon for @app. The caller should + * reference the returned GdkPixbuf if it needs to keep + * the icon around. + **/ +GdkPixbuf* +wnck_application_get_icon (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + _wnck_application_load_icons (app); + + if (app->priv->icon) + return app->priv->icon; + else + { + WnckWindow *w = find_icon_window (app); + if (w) + return wnck_window_get_icon (w); + else + return NULL; + } +} + +/** + * wnck_application_get_mini_icon: + * @app: a #WnckApplication. + * + * Gets the mini-icon to be used for @app. If no mini-icon is set for @app, + * a suboptimal heuristic is used to find an appropriate icon. If no mini-icon + * was found, a fallback mini-icon is used. + * + * Return value: (transfer none): the mini-icon for @app. The caller should + * reference the returned GdkPixbuf if it needs to keep + * the mini-icon around. + **/ +GdkPixbuf* +wnck_application_get_mini_icon (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + _wnck_application_load_icons (app); + + if (app->priv->mini_icon) + return app->priv->mini_icon; + else + { + WnckWindow *w = find_icon_window (app); + if (w) + return wnck_window_get_mini_icon (w); + else + return NULL; + } +} + +/** + * wnck_application_get_icon_is_fallback: + * @app: a #WnckApplication + * + * Gets whether a default fallback icon is used for @app (because none + * was set on @app). + * + * Return value: %TRUE if the icon for @app is a fallback, %FALSE otherwise. + **/ +gboolean +wnck_application_get_icon_is_fallback (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), FALSE); + + if (app->priv->icon) + return FALSE; + else + { + WnckWindow *w = find_icon_window (app); + if (w) + return wnck_window_get_icon_is_fallback (w); + else + return TRUE; + } +} + +/** + * wnck_application_get_startup_id: + * @app: a #WnckApplication. + * + * Gets the startup sequence ID used for startup notification of @app. + * + * Return value: the startup sequence ID used for startup notification of @app, + * or %NULL if none is available. + * + * Since: 2.2 + */ +const char* +wnck_application_get_startup_id (WnckApplication *app) +{ + g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); + + return app->priv->startup_id; +} + +/* xwindow is a group leader */ +WnckApplication* +_wnck_application_create (Window xwindow, + WnckScreen *screen) +{ + WnckApplication *application; + Screen *xscreen; + + if (app_hash == NULL) + app_hash = g_hash_table_new_full (_wnck_xid_hash, _wnck_xid_equal, + NULL, g_object_unref); + + g_return_val_if_fail (g_hash_table_lookup (app_hash, &xwindow) == NULL, + NULL); + + xscreen = WNCK_SCREEN_XSCREEN (screen); + + application = g_object_new (WNCK_TYPE_APPLICATION, NULL); + application->priv->xwindow = xwindow; + application->priv->screen = screen; + + application->priv->name = _wnck_get_name (xscreen, xwindow); + + if (application->priv->name == NULL) + application->priv->name = _wnck_get_res_class_utf8 (xscreen, xwindow); + + if (application->priv->name) + application->priv->name_from_leader = TRUE; + + application->priv->pid = _wnck_get_pid (xscreen, + application->priv->xwindow); + + application->priv->startup_id = _wnck_get_utf8_property (xscreen, + application->priv->xwindow, + _wnck_atom_get ("_NET_STARTUP_ID")); + + g_hash_table_insert (app_hash, &application->priv->xwindow, application); + + /* Hash now owns one ref, caller gets none */ + + /* Note that xwindow may correspond to a WnckWindow's xwindow, + * so we select events needed by either + */ + application->priv->orig_event_mask = _wnck_select_input (xscreen, + application->priv->xwindow, + WNCK_APP_WINDOW_EVENT_MASK, + TRUE); + + return application; +} + +void +_wnck_application_destroy (WnckApplication *application) +{ + Window xwindow = application->priv->xwindow; + + g_return_if_fail (wnck_application_get (xwindow) == application); + + g_hash_table_remove (app_hash, &xwindow); + + /* Removing from hash also removes the only ref WnckApplication had */ + + g_return_if_fail (wnck_application_get (xwindow) == NULL); +} + +static void +window_name_changed (WnckWindow *window, + WnckApplication *app) +{ + if (window == app->priv->name_window) + { + reset_name (app); + update_name (app); + } +} + +void +_wnck_application_add_window (WnckApplication *app, + WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_APPLICATION (app)); + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (wnck_window_get_application (window) == NULL); + + app->priv->windows = g_list_prepend (app->priv->windows, window); + _wnck_window_set_application (window, app); + + g_signal_connect (G_OBJECT (window), "name_changed", + G_CALLBACK (window_name_changed), app); + + /* emits signals, so do it last */ + reset_name (app); + update_name (app); + + /* see if we're using icon from a window */ + if (app->priv->icon == NULL || + app->priv->mini_icon == NULL) + emit_icon_changed (app); +} + +void +_wnck_application_remove_window (WnckApplication *app, + WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_APPLICATION (app)); + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (wnck_window_get_application (window) == app); + + app->priv->windows = g_list_remove (app->priv->windows, window); + _wnck_window_set_application (window, NULL); + + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + window_name_changed, app); + + /* emits signals, so do it last */ + reset_name (app); + update_name (app); + + /* see if we're using icon from a window */ + if (app->priv->icon == NULL || + app->priv->mini_icon == NULL) + emit_icon_changed (app); +} + +void +_wnck_application_process_property_notify (WnckApplication *app, + XEvent *xevent) +{ + /* This prop notify is on the leader window */ + + if (xevent->xproperty.atom == XA_WM_NAME || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_NAME") || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_VISIBLE_NAME")) + { + /* FIXME should change the name */ + } + else if (xevent->xproperty.atom == + XA_WM_ICON_NAME || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_ICON_NAME") || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_VISIBLE_ICON_NAME")) + { + /* FIXME */ + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_ICON") || + xevent->xproperty.atom == + _wnck_atom_get ("KWM_WIN_ICON") || + xevent->xproperty.atom == + _wnck_atom_get ("WM_NORMAL_HINTS")) + { + _wnck_icon_cache_property_changed (app->priv->icon_cache, + xevent->xproperty.atom); + emit_icon_changed (app); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_STARTUP_ID")) + { + /* FIXME update startup id */ + } +} + +static void +emit_name_changed (WnckApplication *app) +{ + g_signal_emit (G_OBJECT (app), + signals[NAME_CHANGED], + 0); +} + +static void +emit_icon_changed (WnckApplication *app) +{ + app->priv->need_emit_icon_changed = FALSE; + g_signal_emit (G_OBJECT (app), + signals[ICON_CHANGED], + 0); +} + +static void +reset_name (WnckApplication *app) +{ + if (!app->priv->name_from_leader) + { + g_free (app->priv->name); + app->priv->name = NULL; + app->priv->name_window = NULL; + } +} + +static void +update_name (WnckApplication *app) +{ + g_assert (app->priv->name_from_leader || app->priv->name == NULL); + + if (app->priv->name == NULL) + { + /* if only one window, get name from there. If more than one and + * they all have the same res_class, use that. Else we want to + * use the fallback name, since using the title of one of the + * windows would look wrong. + */ + if (app->priv->windows && + app->priv->windows->next == NULL) + { + app->priv->name = + g_strdup (wnck_window_get_name (app->priv->windows->data)); + app->priv->name_window = app->priv->windows->data; + emit_name_changed (app); + } + else if (app->priv->windows) + { + /* more than one */ + app->priv->name = + _wnck_get_res_class_utf8 (WNCK_SCREEN_XSCREEN (app->priv->screen), + wnck_window_get_xid (app->priv->windows->data)); + if (app->priv->name) + { + app->priv->name_window = app->priv->windows->data; + emit_name_changed (app); + } + } + } +} diff --git a/libwnck/application.h b/libwnck/application.h new file mode 100644 index 0000000..7966a81 --- /dev/null +++ b/libwnck/application.h @@ -0,0 +1,99 @@ +/* application object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_APPLICATION_H +#define WNCK_APPLICATION_H + +#include +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_APPLICATION (wnck_application_get_type ()) +#define WNCK_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_APPLICATION, WnckApplication)) +#define WNCK_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_APPLICATION, WnckApplicationClass)) +#define WNCK_IS_APPLICATION(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_APPLICATION)) +#define WNCK_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_APPLICATION)) +#define WNCK_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_APPLICATION, WnckApplicationClass)) + +typedef struct _WnckApplicationClass WnckApplicationClass; +typedef struct _WnckApplicationPrivate WnckApplicationPrivate; + +/** + * WnckApplication: + * + * The #WnckApplication struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckApplication +{ + GObject parent_instance; + + WnckApplicationPrivate *priv; +}; + +struct _WnckApplicationClass +{ + GObjectClass parent_class; + + /* app name or icon name changed */ + void (* name_changed) (WnckApplication *app); + + /* icon changed */ + void (* icon_changed) (WnckApplication *app); + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +GType wnck_application_get_type (void) G_GNUC_CONST; + +WnckApplication* wnck_application_get (gulong xwindow); + +gulong wnck_application_get_xid (WnckApplication *app); + +GList* wnck_application_get_windows (WnckApplication *app); +int wnck_application_get_n_windows (WnckApplication *app); + +/* application_get_name, application_get_pid, etc.; prefer to read + * properties straight off the group leader, and failing that, if the + * prop is the same for all windows in the app, return the values for + * the window. Failing that, they make stuff up. + */ +const char* wnck_application_get_name (WnckApplication *app); +const char* wnck_application_get_icon_name (WnckApplication *app); +int wnck_application_get_pid (WnckApplication *app); +GdkPixbuf* wnck_application_get_icon (WnckApplication *app); +GdkPixbuf* wnck_application_get_mini_icon (WnckApplication *app); +gboolean wnck_application_get_icon_is_fallback (WnckApplication *app); +const char* wnck_application_get_startup_id (WnckApplication *app); + +G_END_DECLS + +#endif /* WNCK_APPLICATION_H */ diff --git a/libwnck/class-group.c b/libwnck/class-group.c new file mode 100644 index 0000000..ce99c79 --- /dev/null +++ b/libwnck/class-group.c @@ -0,0 +1,630 @@ +/* class group object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2003 Ximian, Inc. + * Authors: Federico Mena-Quintero + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#undef WNCK_DISABLE_DEPRECATED + +#include +#include "class-group.h" +#include "window.h" +#include "private.h" + +/** + * SECTION:class-group + * @short_description: an object representing a group of windows of the same + * class. + * @see_also: wnck_window_get_class_group() + * @stability: Unstable + * + * The #WnckClassGroup is a group of #WnckWindow that are all in the same + * class. It can be used to represent windows by classes, group windows by + * classes or to manipulate all windows of a particular class. + * + * The class of a window is defined by the WM_CLASS property of this window. + * More information about the WM_CLASS property is available in the WM_CLASS Property + * section (section 4.1.2.5) of the ICCCM. + * + * The #WnckClassGroup objects are always owned by libwnck and must not be + * referenced or unreferenced. + */ + +/* Private part of the WnckClassGroup structure */ +struct _WnckClassGroupPrivate { + char *res_class; + char *name; + GList *windows; + + GdkPixbuf *icon; + GdkPixbuf *mini_icon; +}; + +G_DEFINE_TYPE (WnckClassGroup, wnck_class_group, G_TYPE_OBJECT); +#define WNCK_CLASS_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_CLASS_GROUP, WnckClassGroupPrivate)) + +/* Hash table that maps res_class strings -> WnckClassGroup instances */ +static GHashTable *class_group_hash = NULL; + +static void wnck_class_group_finalize (GObject *object); + +enum { + NAME_CHANGED, + ICON_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + +void +_wnck_class_group_shutdown_all (void) +{ + if (class_group_hash != NULL) + { + g_hash_table_destroy (class_group_hash); + class_group_hash = NULL; + } +} + +static void +wnck_class_group_class_init (WnckClassGroupClass *class) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (class); + + g_type_class_add_private (class, sizeof (WnckClassGroupPrivate)); + + gobject_class->finalize = wnck_class_group_finalize; + + /** + * WnckClassGroup::name-changed: + * @class_group: the #WnckClassGroup which emitted the signal. + * + * Emitted when the name of @class_group changes. + */ + signals[NAME_CHANGED] = + g_signal_new ("name_changed", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckClassGroupClass, name_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + /** + * WnckClassGroup::icon-changed: + * @class_group: the #WnckClassGroup which emitted the signal. + * + * Emitted when the icon of @class_group changes. + */ + signals[ICON_CHANGED] = + g_signal_new ("icon_changed", + G_OBJECT_CLASS_TYPE (gobject_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckClassGroupClass, icon_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); +} + +static void +wnck_class_group_init (WnckClassGroup *class_group) +{ + class_group->priv = WNCK_CLASS_GROUP_GET_PRIVATE (class_group); +} + +static void +wnck_class_group_finalize (GObject *object) +{ + WnckClassGroup *class_group; + + class_group = WNCK_CLASS_GROUP (object); + + if (class_group->priv->res_class) + g_free (class_group->priv->res_class); + class_group->priv->res_class = NULL; + + if (class_group->priv->name) + g_free (class_group->priv->name); + class_group->priv->name = NULL; + + g_list_free (class_group->priv->windows); + class_group->priv->windows = NULL; + + if (class_group->priv->icon) + g_object_unref (class_group->priv->icon); + class_group->priv->icon = NULL; + + if (class_group->priv->mini_icon) + g_object_unref (class_group->priv->mini_icon); + class_group->priv->mini_icon = NULL; + + G_OBJECT_CLASS (wnck_class_group_parent_class)->finalize (object); +} + +/** + * wnck_class_group_get: + * @id: identifier name of the sought resource class. + * + * Gets the #WnckClassGroup corresponding to @id. + * + * Return value: (transfer none): the #WnckClassGroup corresponding to + * @id, or %NULL if there is no #WnckClassGroup with the specified + * @id. The returned #WnckClassGroup is owned by libwnck and must not be + * referenced or unreferenced. + * + * Since: 2.2 + **/ +WnckClassGroup * +wnck_class_group_get (const char *id) +{ + if (!class_group_hash) + return NULL; + else + return g_hash_table_lookup (class_group_hash, id ? id : ""); +} + +/** + * _wnck_class_group_create: + * @res_class: name of the resource class for the group. + * + * Creates a new WnckClassGroup with the specified resource class name. If + * @res_class is #NULL, then windows without a resource class name will get + * grouped under this class group. + * + * Return value: a newly-created #WnckClassGroup, or an existing one that + * matches the @res_class. + **/ +WnckClassGroup * +_wnck_class_group_create (const char *res_class) +{ + WnckClassGroup *class_group; + + if (class_group_hash == NULL) + class_group_hash = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, g_object_unref); + + g_return_val_if_fail (g_hash_table_lookup (class_group_hash, res_class ? res_class : "") == NULL, + NULL); + + class_group = g_object_new (WNCK_TYPE_CLASS_GROUP, NULL); + + class_group->priv->res_class = g_strdup (res_class ? res_class : ""); + + g_hash_table_insert (class_group_hash, + class_group->priv->res_class, class_group); + /* Hash now owns one ref, caller gets none */ + + return class_group; +} + +/** + * _wnck_class_group_destroy: + * @class_group: a #WnckClassGroup. + * + * Destroys the specified @class_group. + **/ +void +_wnck_class_group_destroy (WnckClassGroup *class_group) +{ + g_return_if_fail (WNCK_IS_CLASS_GROUP (class_group)); + + g_hash_table_remove (class_group_hash, class_group->priv->res_class); + + /* Removing from hash also removes the only ref WnckClassGroup had */ +} + +static const char * +get_name_from_applications (WnckClassGroup *class_group) +{ + const char *first_name; + GList *l; + + /* Try to get the name from the group leaders. If all have the same name, we + * can use that. + */ + + first_name = NULL; + + for (l = class_group->priv->windows; l; l = l->next) + { + WnckWindow *w; + WnckApplication *app; + + w = WNCK_WINDOW (l->data); + app = wnck_window_get_application (w); + + if (!first_name) + { + if (app) + first_name = wnck_application_get_name (app); + } + else + { + if (!app || strcmp (first_name, wnck_application_get_name (app)) != 0) + break; + } + } + + if (!l) + { + /* All names are the same, so use one of them */ + return first_name; + } + else + return NULL; +} + +static const char * +get_name_from_windows (WnckClassGroup *class_group) +{ + const char *first_name; + GList *l; + + /* Try to get the name from windows, following the same rationale as + * get_name_from_applications() + */ + + first_name = NULL; + + for (l = class_group->priv->windows; l; l = l->next) + { + WnckWindow *window; + + window = WNCK_WINDOW (l->data); + + if (!first_name) + first_name = wnck_window_get_name (window); + else + if (strcmp (first_name, wnck_window_get_name (window)) != 0) + break; + } + + if (!l) + { + /* All names are the same, so use one of them */ + return first_name; + } + else + return NULL; +} + + +/* Gets a sensible name for the class group from the application group leaders + * or from individual windows. + */ +static void +set_name (WnckClassGroup *class_group) +{ + const char *new_name; + + if (class_group->priv->name) + { + g_free (class_group->priv->name); + class_group->priv->name = NULL; + } + + new_name = get_name_from_applications (class_group); + + if (!new_name) + { + new_name = get_name_from_windows (class_group); + + if (!new_name) + new_name = class_group->priv->res_class; + } + + g_assert (new_name != NULL); + + if (!class_group->priv->name || + strcmp (class_group->priv->name, new_name) != 0) + { + g_free (class_group->priv->name); + class_group->priv->name = g_strdup (new_name); + + g_signal_emit (G_OBJECT (class_group), signals[NAME_CHANGED], 0); + } +} + +/* Walks the list of applications, trying to get an icon from them */ +static void +get_icons_from_applications (WnckClassGroup *class_group, GdkPixbuf **icon, GdkPixbuf **mini_icon) +{ + GList *l; + + *icon = NULL; + *mini_icon = NULL; + + for (l = class_group->priv->windows; l; l = l->next) + { + WnckWindow *window; + WnckApplication *app; + + window = WNCK_WINDOW (l->data); + app = wnck_window_get_application (window); + if (app) + { + *icon = wnck_application_get_icon (app); + *mini_icon = wnck_application_get_mini_icon (app); + + if (*icon && *mini_icon) + return; + else + { + *icon = NULL; + *mini_icon = NULL; + } + } + } +} + +/* Walks the list of windows, trying to get an icon from them */ +static void +get_icons_from_windows (WnckClassGroup *class_group, GdkPixbuf **icon, GdkPixbuf **mini_icon) +{ + GList *l; + + *icon = NULL; + *mini_icon = NULL; + + for (l = class_group->priv->windows; l; l = l->next) + { + WnckWindow *window; + + window = WNCK_WINDOW (l->data); + + *icon = wnck_window_get_icon (window); + *mini_icon = wnck_window_get_mini_icon (window); + + if (*icon && *mini_icon) + return; + else + { + *icon = NULL; + *mini_icon = NULL; + } + } +} + +/* Gets a sensible icon and mini_icon for the class group from the application + * group leaders or from individual windows. + */ +static void +set_icon (WnckClassGroup *class_group) +{ + GdkPixbuf *icon, *mini_icon; + gboolean icons_reffed = FALSE; + + get_icons_from_applications (class_group, &icon, &mini_icon); + + if (!icon || !mini_icon) + get_icons_from_windows (class_group, &icon, &mini_icon); + + if (!icon || !mini_icon) + { + _wnck_get_fallback_icons (&icon, + _wnck_get_default_icon_size (), + _wnck_get_default_icon_size (), + &mini_icon, + _wnck_get_default_mini_icon_size (), + _wnck_get_default_mini_icon_size ()); + icons_reffed = TRUE; + } + + g_assert (icon && mini_icon); + + if (class_group->priv->icon) + g_object_unref (class_group->priv->icon); + + if (class_group->priv->mini_icon) + g_object_unref (class_group->priv->mini_icon); + + class_group->priv->icon = icon; + class_group->priv->mini_icon = mini_icon; + + if (!icons_reffed) + { + g_object_ref (class_group->priv->icon); + g_object_ref (class_group->priv->mini_icon); + } + + g_signal_emit (G_OBJECT (class_group), signals[ICON_CHANGED], 0); +} + +/** + * _wnck_class_group_add_window: + * @class_group: a #WnckClassGroup. + * @window: a #WnckWindow. + * + * Adds a window to @class_group. You should only do this if the resource + * class of the window matches the @class_group's. + **/ +void +_wnck_class_group_add_window (WnckClassGroup *class_group, + WnckWindow *window) +{ + + g_return_if_fail (WNCK_IS_CLASS_GROUP (class_group)); + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (wnck_window_get_class_group (window) == NULL); + + class_group->priv->windows = g_list_prepend (class_group->priv->windows, + window); + _wnck_window_set_class_group (window, class_group); + + set_name (class_group); + set_icon (class_group); + + /* FIXME: should we monitor class group changes on the window? The ICCCM says + * that clients should never change WM_CLASS unless the window is withdrawn. + */ +} + +/** + * _wnck_class_group_remove_window: + * @class_group: a #WnckClassGroup. + * @window: a #WnckWindow. + * + * Removes a window from the list of windows that are grouped under the + * specified @class_group. + **/ +void +_wnck_class_group_remove_window (WnckClassGroup *class_group, + WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_CLASS_GROUP (class_group)); + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (wnck_window_get_class_group (window) == class_group); + + class_group->priv->windows = g_list_remove (class_group->priv->windows, + window); + _wnck_window_set_class_group (window, NULL); + + set_name (class_group); + set_icon (class_group); +} + +/** + * wnck_class_group_get_windows: + * @class_group: a #WnckClassGroup. + * + * Gets the list of #WnckWindow that are grouped in @class_group. + * + * Return value: (element-type WnckWindow) (transfer none): the list of + * #WnckWindow grouped in @class_group, or %NULL if the group contains no + * window. The list should not be modified nor freed, as it is owned by + * @class_group. + * + * Since: 2.2 + **/ +GList * +wnck_class_group_get_windows (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->windows; +} + +/** + * wnck_class_group_get_id: + * @class_group: a #WnckClassGroup. + * + * Gets the identifier name for @class_group. This is the resource class for + * @class_group. + * + * Return value: the identifier name of @class_group, or an + * empty string if the group has no identifier name. + * + * Since: 3.2 + **/ +const char * +wnck_class_group_get_id (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->res_class; +} + +/** + * wnck_class_group_get_res_class: + * @class_group: a #WnckClassGroup. + * + * Gets the resource class name for @class_group. + * + * Return value: the resource class name of @class_group, or an + * empty string if the group has no resource class name. + * + * Since: 2.2 + * Deprecated:3.2: Use wnck_class_group_get_id() instead. + **/ +const char * +wnck_class_group_get_res_class (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->res_class; +} + +/** + * wnck_class_group_get_name: + * @class_group: a #WnckClassGroup. + * + * Gets an human-readable name for @class_group. Since there is no way to + * properly find this name, a suboptimal heuristic is used to find it. The name + * is the name of all #WnckApplication for each #WnckWindow in @class_group if + * they all have the same name. If all #WnckApplication don't have the same + * name, the name is the name of all #WnckWindow in @class_group if they all + * have the same name. If all #WnckWindow don't have the same name, the + * resource class name is used. + * + * Return value: an human-readable name for @class_group. + * + * Since: 2.2 + **/ +const char * +wnck_class_group_get_name (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->name; +} + +/** + * wnck_class_group_get_icon: + * @class_group: a #WnckClassGroup. + * + * Gets the icon to be used for @class_group. Since there is no way to + * properly find the icon, a suboptimal heuristic is used to find it. The icon + * is the first icon found by looking at all the #WnckApplication for each + * #WnckWindow in @class_group, then at all the #WnckWindow in @class_group. If + * no icon was found, a fallback icon is used. + * + * Return value: (transfer none): the icon for @class_group. The caller should + * reference the returned GdkPixbuf if it needs to keep + * the icon around. + * + * Since: 2.2 + **/ +GdkPixbuf * +wnck_class_group_get_icon (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->icon; +} + +/** + * wnck_class_group_get_mini_icon: + * @class_group: a #WnckClassGroup. + * + * Gets the mini-icon to be used for @class_group. Since there is no way to + * properly find the mini-icon, the same suboptimal heuristic as the one for + * wnck_class_group_get_icon() is used to find it. + * + * Return value: (transfer none): the mini-icon for @class_group. The caller + * should reference the returned GdkPixbuf if it needs + * to keep the mini-icon around. + * + * Since: 2.2 + **/ +GdkPixbuf * +wnck_class_group_get_mini_icon (WnckClassGroup *class_group) +{ + g_return_val_if_fail (class_group != NULL, NULL); + + return class_group->priv->mini_icon; +} diff --git a/libwnck/class-group.h b/libwnck/class-group.h new file mode 100644 index 0000000..ce084c3 --- /dev/null +++ b/libwnck/class-group.h @@ -0,0 +1,92 @@ +/* class group object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2003 Ximian, Inc. + * Authors: Federico Mena-Quintero + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_CLASS_GROUP_H +#define WNCK_CLASS_GROUP_H + +#include +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_CLASS_GROUP (wnck_class_group_get_type ()) +#define WNCK_CLASS_GROUP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_CLASS_GROUP, WnckClassGroup)) +#define WNCK_CLASS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_CLASS_GROUP, WnckClassGroupClass)) +#define WNCK_IS_CLASS_GROUP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_CLASS_GROUP)) +#define WNCK_IS_CLASS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_CLASS_GROUP)) +#define WNCK_CLASS_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_CLASS_GROUP, WnckClassGroupClass)) + +typedef struct _WnckClassGroupClass WnckClassGroupClass; +typedef struct _WnckClassGroupPrivate WnckClassGroupPrivate; + +/** + * WnckClassGroup: + * + * The #WnckClassGroup struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckClassGroup +{ + GObject parent_instance; + + WnckClassGroupPrivate *priv; +}; + +struct _WnckClassGroupClass +{ + GObjectClass parent_class; + + void (* name_changed) (WnckClassGroup *group); + void (* icon_changed) (WnckClassGroup *group); + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +GType wnck_class_group_get_type (void) G_GNUC_CONST; + +WnckClassGroup *wnck_class_group_get (const char *id); + +GList *wnck_class_group_get_windows (WnckClassGroup *class_group); +const char * wnck_class_group_get_id (WnckClassGroup *class_group); + +const char * wnck_class_group_get_name (WnckClassGroup *class_group); + +GdkPixbuf *wnck_class_group_get_icon (WnckClassGroup *class_group); +GdkPixbuf *wnck_class_group_get_mini_icon (WnckClassGroup *class_group); + +#ifndef WNCK_DISABLE_DEPRECATED +G_DEPRECATED_FOR(wnck_class_group_get_id) +const char * wnck_class_group_get_res_class (WnckClassGroup *class_group); +#endif + +G_END_DECLS + +#endif /* WNCK_CLASS_GROUP_H */ diff --git a/libwnck/default_icon.png b/libwnck/default_icon.png new file mode 100644 index 0000000..ce66be1 Binary files /dev/null and b/libwnck/default_icon.png differ diff --git a/libwnck/libwnck.h b/libwnck/libwnck.h new file mode 100644 index 0000000..20f89f6 --- /dev/null +++ b/libwnck/libwnck.h @@ -0,0 +1,45 @@ +/* libwnck header */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * + * 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; if not, see . + */ + +#ifndef WNCK_LIB_H +#define WNCK_LIB_H + +#define __LIBWNCK_H_INSIDE__ + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include + +#include + +#undef __LIBWNCK_H_INSIDE__ + +#endif /* WNCK_LIB_H */ diff --git a/libwnck/pager-accessible-factory.c b/libwnck/pager-accessible-factory.c new file mode 100644 index 0000000..2773f28 --- /dev/null +++ b/libwnck/pager-accessible-factory.c @@ -0,0 +1,69 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include +#include "pager-accessible-factory.h" +#include "pager-accessible.h" + +G_DEFINE_TYPE (WnckPagerAccessibleFactory, + wnck_pager_accessible_factory, ATK_TYPE_OBJECT_FACTORY); + +static AtkObject* wnck_pager_accessible_factory_create_accessible (GObject *obj); + +static GType wnck_pager_accessible_factory_get_accessible_type (void); + +static void +wnck_pager_accessible_factory_class_init (WnckPagerAccessibleFactoryClass *klass) +{ + AtkObjectFactoryClass *class = ATK_OBJECT_FACTORY_CLASS (klass); + + class->create_accessible = wnck_pager_accessible_factory_create_accessible; + class->get_accessible_type = wnck_pager_accessible_factory_get_accessible_type; +} + +static void +wnck_pager_accessible_factory_init (WnckPagerAccessibleFactory *factory) +{ +} + +AtkObjectFactory* +wnck_pager_accessible_factory_new (void) +{ + GObject *factory; + + factory = g_object_new (WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY, NULL); + + return ATK_OBJECT_FACTORY (factory); +} + +static AtkObject* +wnck_pager_accessible_factory_create_accessible (GObject *obj) +{ + GtkWidget *widget; + + g_return_val_if_fail (GTK_IS_WIDGET (obj), NULL); + + widget = GTK_WIDGET (obj); + return wnck_pager_accessible_new (widget); +} + +static GType +wnck_pager_accessible_factory_get_accessible_type (void) +{ + return WNCK_PAGER_TYPE_ACCESSIBLE; +} diff --git a/libwnck/pager-accessible-factory.h b/libwnck/pager-accessible-factory.h new file mode 100644 index 0000000..8e2fe30 --- /dev/null +++ b/libwnck/pager-accessible-factory.h @@ -0,0 +1,52 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __WNCK_PAGER_ACCESSIBLE_FACTORY_H__ +#define __WBCK_PAGER_ACCESSIBLE_FACTORY_H__ + +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY (wnck_pager_accessible_factory_get_type()) +#define WNCK_PAGER_ACCESSIBLE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY, WnckpagerAccessibleFactory)) +#define WNCK_PAGER_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY, WnckPagerAccessibleFactoryClass)) +#define WNCK_IS_PAGER_ACCESSIBLE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY)) +#define WNCK_IS_PAGER_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY)) +#define WNCK_PAGER_ACCESSIBLE_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY, WnckPagerAccessibleFactoryClass)) + +typedef struct _WnckPagerAccessibleFactory WnckPagerAccessibleFactory; +typedef struct _WnckPagerAccessibleFactoryClass WnckPagerAccessibleFactoryClass; + +struct _WnckPagerAccessibleFactory +{ + AtkObjectFactory parent; +}; + +struct _WnckPagerAccessibleFactoryClass +{ + AtkObjectFactoryClass parent_class; +}; + +GType wnck_pager_accessible_factory_get_type (void) G_GNUC_CONST; + +AtkObjectFactory* wnck_pager_accessible_factory_new (void); + +G_END_DECLS + +#endif /* __WNCK_PAGER_ACCESSIBLE_FACTORY_H__ */ diff --git a/libwnck/pager-accessible.c b/libwnck/pager-accessible.c new file mode 100644 index 0000000..89c4468 --- /dev/null +++ b/libwnck/pager-accessible.c @@ -0,0 +1,485 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include + +#include +#include +#include +#include +#include +#include "pager-accessible.h" +#include "pager-accessible-factory.h" +#include "workspace-accessible.h" +#include "private.h" + +typedef struct _WnckPagerAccessiblePriv WnckPagerAccessiblePriv; +struct _WnckPagerAccessiblePriv +{ + GSList *children; +}; + +static void wnck_pager_accessible_class_init (WnckPagerAccessibleClass *klass); +static const char* wnck_pager_accessible_get_name (AtkObject *obj); +static const char* wnck_pager_accessible_get_description (AtkObject *obj); +static int wnck_pager_accessible_get_n_children (AtkObject *obj); +static AtkObject* wnck_pager_accessible_ref_child (AtkObject *obj, + int i); +static void atk_selection_interface_init (AtkSelectionIface *iface); +static gboolean wnck_pager_add_selection (AtkSelection *selection, + int i); +static gboolean wnck_pager_is_child_selected (AtkSelection *selection, + int i); +static AtkObject* wnck_pager_ref_selection (AtkSelection *selection, + int i); +static int wnck_pager_selection_count (AtkSelection *selection); +static void wnck_pager_accessible_update_workspace (AtkObject *aobj_ws, + WnckPager *pager, + int i); +static void wnck_pager_accessible_finalize (GObject *gobject); + +static WnckPagerAccessiblePriv* get_private_data (GObject *gobject); + +static void* parent_class; +static GQuark quark_private_data = 0; + +GType +wnck_pager_accessible_get_type (void) +{ + static GType type = 0; + + if (!type) + { + GTypeInfo tinfo = + { + sizeof (WnckPagerAccessibleClass), + (GBaseInitFunc) NULL, /* base init */ + (GBaseFinalizeFunc) NULL, /* base finalize */ + (GClassInitFunc) wnck_pager_accessible_class_init, /* class init */ + (GClassFinalizeFunc) NULL, /* class finalize */ + NULL, /* class data */ + sizeof (WnckPagerAccessible), /* instance size */ + 0, /* nb preallocs */ + NULL, /* instance init */ + NULL /* value table */ + }; + + const GInterfaceInfo atk_selection_info = + { + (GInterfaceInitFunc) atk_selection_interface_init, + (GInterfaceFinalizeFunc) NULL, + NULL + }; + + /* + * Figure out the size of the class and instance + * we are deriving from + */ + AtkObjectFactory *factory; + GType derived_type; + GTypeQuery query; + GType derived_atk_type; + + derived_type = g_type_parent (WNCK_TYPE_PAGER); + + factory = atk_registry_get_factory (atk_get_default_registry (), + derived_type); + derived_atk_type = atk_object_factory_get_accessible_type (factory); + g_type_query (derived_atk_type, &query); + tinfo.class_size = query.class_size; + tinfo.instance_size = query.instance_size; + + type = g_type_register_static (derived_atk_type, + "WnckPagerAccessible", &tinfo, 0); + + g_type_add_interface_static (type, ATK_TYPE_SELECTION, &atk_selection_info); + } + + return type; +} + +static void +atk_selection_interface_init (AtkSelectionIface *iface) +{ + g_return_if_fail (iface != NULL); + + iface->add_selection = wnck_pager_add_selection; + iface->ref_selection = wnck_pager_ref_selection; + iface->get_selection_count = wnck_pager_selection_count; + iface->is_child_selected = wnck_pager_is_child_selected; +} + +static void +wnck_pager_accessible_class_init (WnckPagerAccessibleClass *klass) +{ + AtkObjectClass *class = ATK_OBJECT_CLASS (klass); + GObjectClass *obj_class = G_OBJECT_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + class->get_name = wnck_pager_accessible_get_name; + class->get_description = wnck_pager_accessible_get_description; + class->get_n_children = wnck_pager_accessible_get_n_children; + class->ref_child = wnck_pager_accessible_ref_child; + + obj_class->finalize = wnck_pager_accessible_finalize; + quark_private_data = g_quark_from_static_string ("wnck-pager-accessible-private-data"); +} + + +static gboolean +wnck_pager_add_selection (AtkSelection *selection, + int i) +{ + WnckPager *pager; + WnckWorkspace *wspace; + GtkWidget *widget; + int n_spaces; + +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection)); +#else + widget = GTK_ACCESSIBLE (selection)->widget; +#endif + + if (widget == NULL) + { + /* + *State is defunct + */ + return FALSE; + } + + pager = WNCK_PAGER (widget); + n_spaces = _wnck_pager_get_n_workspaces (pager); + + if (i < 0 || i >= n_spaces) + return FALSE; + + /* + * Activate the following worksapce as current workspace + */ + wspace = _wnck_pager_get_workspace (pager, i); + /* FIXME: Is gtk_get_current_event_time() good enough here? I have no idea */ + _wnck_pager_activate_workspace (wspace, gtk_get_current_event_time ()); + + return TRUE; +} + +/* + * Returns the AtkObject of the selected WorkSpace + */ +static AtkObject* +wnck_pager_ref_selection (AtkSelection *selection, + int i) +{ + WnckPager *pager; + GtkWidget *widget; + WnckWorkspace *active_wspace; + AtkObject *accessible; + int wsno; + + g_return_val_if_fail (i == 0, NULL); + +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection)); +#else + widget = GTK_ACCESSIBLE (selection)->widget; +#endif + if (widget == NULL) + { + /* + * State is defunct + */ + return NULL; + } + pager = WNCK_PAGER (widget); + + active_wspace = WNCK_WORKSPACE (_wnck_pager_get_active_workspace (pager)); + wsno = wnck_workspace_get_number (active_wspace); + + accessible = ATK_OBJECT (wnck_pager_accessible_ref_child (ATK_OBJECT (selection), wsno)); + + return accessible; +} + +/* + * Returns the no.of child selected, it should be either 1 or 0 + * b'coz only one child can be selected at a time. + */ +static int +wnck_pager_selection_count (AtkSelection *selection) +{ + GtkWidget *widget; + +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection)); +#else + widget = GTK_ACCESSIBLE (selection)->widget; +#endif + if (widget == NULL) + { + /* + * State is defunct + */ + return 0; + } + else + { + return 1; + } +} + +/* + *Checks whether the WorkSpace specified by i is selected, + *and returns TRUE on selection. + */ +static gboolean +wnck_pager_is_child_selected (AtkSelection *selection, + int i) +{ + WnckPager *pager; + GtkWidget *widget; + WnckWorkspace *active_wspace; + int wsno; + +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection)); +#else + widget = GTK_ACCESSIBLE (selection)->widget; +#endif + if (widget == NULL) + { + /* + * State is defunct + */ + return FALSE; + } + + pager = WNCK_PAGER (widget); + active_wspace = _wnck_pager_get_active_workspace (pager); + + wsno = wnck_workspace_get_number (active_wspace); + + return (wsno == i); +} + +AtkObject* +wnck_pager_accessible_new (GtkWidget *widget) +{ + GObject *object; + AtkObject *aobj_pager; + GtkAccessible *gtk_accessible; + + object = g_object_new (WNCK_PAGER_TYPE_ACCESSIBLE, NULL); + + aobj_pager = ATK_OBJECT (object); + + gtk_accessible = GTK_ACCESSIBLE (aobj_pager); +#if GTK_CHECK_VERSION(2,21,3) + gtk_accessible_set_widget (gtk_accessible, widget); +#else + gtk_accessible->widget = widget; +#endif + + atk_object_initialize (aobj_pager, widget); + aobj_pager->role = ATK_ROLE_PANEL; + + return aobj_pager; +} + +static void +wnck_pager_accessible_finalize (GObject *gobject) +{ + WnckPagerAccessiblePriv *pager_accessible_priv; + GSList *children; + + pager_accessible_priv = get_private_data (gobject); + + if (pager_accessible_priv) + { + if (pager_accessible_priv->children) + { + children = pager_accessible_priv->children; + g_slist_foreach (children, + (GFunc) g_object_unref, NULL); + + g_slist_free (children); + } + + g_free (pager_accessible_priv); + g_object_set_qdata (gobject, + quark_private_data, + NULL); + } + + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + +static const char* +wnck_pager_accessible_get_name (AtkObject *obj) +{ + g_return_val_if_fail (WNCK_PAGER_IS_ACCESSIBLE (obj), NULL); + + if (obj->name == NULL) + obj->name = g_strdup (_("Workspace Switcher")); + + return obj->name; +} + +static const char* +wnck_pager_accessible_get_description (AtkObject *obj) +{ + g_return_val_if_fail (WNCK_PAGER_IS_ACCESSIBLE (obj), NULL); + + if (obj->description == NULL) + obj->description = g_strdup (_("Tool to switch between workspaces")); + + return obj->description; +} + +/* + * Number of workspaces is returned as n_children + */ +static int +wnck_pager_accessible_get_n_children (AtkObject* obj) +{ + GtkAccessible *accessible; + GtkWidget *widget; + WnckPager *pager; + + g_return_val_if_fail (WNCK_PAGER_IS_ACCESSIBLE (obj), 0); + + accessible = GTK_ACCESSIBLE (obj); +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (accessible); +#else + widget = accessible->widget; +#endif + + if (widget == NULL) + /* State is defunct */ + return 0; + + pager = WNCK_PAGER (widget); + + return _wnck_pager_get_n_workspaces (pager); +} + +/* + * Will return appropriate static AtkObject for the workspaces + */ +static AtkObject* +wnck_pager_accessible_ref_child (AtkObject *obj, + int i) +{ + GtkAccessible *accessible; + GtkWidget *widget; + WnckPager *pager; + int n_spaces = 0; + int len; + WnckPagerAccessiblePriv *pager_accessible_priv; + AtkObject *ret; + + g_return_val_if_fail (WNCK_PAGER_IS_ACCESSIBLE (obj), NULL); + g_return_val_if_fail (ATK_IS_OBJECT (obj), NULL); + + accessible = GTK_ACCESSIBLE (obj); +#if GTK_CHECK_VERSION(2,21,0) + widget = gtk_accessible_get_widget (accessible); +#else + widget = accessible->widget; +#endif + + if (widget == NULL) + /* State is defunct */ + return NULL; + + pager = WNCK_PAGER (widget); + pager_accessible_priv = get_private_data (G_OBJECT (obj)); + + len = g_slist_length (pager_accessible_priv->children); + n_spaces = _wnck_pager_get_n_workspaces (pager); + + if (i < 0 || i >= n_spaces) + return NULL; + + /* We are really inefficient about this due to all the appending, + * and never shrink the list either. + */ + while (n_spaces > len) + { + AtkRegistry *default_registry; + AtkObjectFactory *factory; + WnckWorkspace *wspace; + WnckWorkspaceAccessible *space_accessible; + + default_registry = atk_get_default_registry (); + factory = atk_registry_get_factory (default_registry, + WNCK_TYPE_WORKSPACE); + + wspace = _wnck_pager_get_workspace (pager, len); + space_accessible = WNCK_WORKSPACE_ACCESSIBLE (atk_object_factory_create_accessible (factory, + G_OBJECT (wspace))); + atk_object_set_parent (ATK_OBJECT (space_accessible), obj); + + pager_accessible_priv->children = g_slist_append (pager_accessible_priv->children, + space_accessible); + + ++len; + } + + ret = g_slist_nth_data (pager_accessible_priv->children, i); + g_object_ref (G_OBJECT (ret)); + wnck_pager_accessible_update_workspace (ret, pager, i); + + return ret; +} + +static void +wnck_pager_accessible_update_workspace (AtkObject *aobj_ws, + WnckPager *pager, + int i) +{ + g_free (aobj_ws->name); + aobj_ws->name = g_strdup (_wnck_pager_get_workspace_name (pager, i)); + + g_free (aobj_ws->description); + aobj_ws->description = g_strdup_printf (_("Click this to switch to workspace %s"), + aobj_ws->name); + aobj_ws->role = ATK_ROLE_UNKNOWN; +} + +static WnckPagerAccessiblePriv* +get_private_data (GObject *gobject) +{ + WnckPagerAccessiblePriv *private_data; + + private_data = g_object_get_qdata (gobject, + quark_private_data); + if (!private_data) + { + private_data = g_new0 (WnckPagerAccessiblePriv, 1); + g_object_set_qdata (gobject, + quark_private_data, + private_data); + } + return private_data; +} + + diff --git a/libwnck/pager-accessible.h b/libwnck/pager-accessible.h new file mode 100644 index 0000000..fd3dac6 --- /dev/null +++ b/libwnck/pager-accessible.h @@ -0,0 +1,55 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __WNCK_PAGER_ACCESSIBLE_H__ +#define __WNCK_PAGER_ACCESSIBLE_H__ + +#include +#include +#include "pager.h" +#include "screen.h" + +G_BEGIN_DECLS + +#define WNCK_PAGER_TYPE_ACCESSIBLE (wnck_pager_accessible_get_type ()) +#define WNCK_PAGER_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WNCK_PAGER_TYPE_ACCESSIBLE, WnckPagerAccessible)) +#define WNCK_PAGER_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_PAGER_TYPE_ACCESSIBLE, WnckPagerAccessibleClass)) +#define WNCK_PAGER_IS_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WNCK_PAGER_TYPE_ACCESSIBLE)) +#define WNCK_PAGER_IS_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WnckPagerAccessible)) +#define WNCK_PAGER_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_PAGER_TYPE_ACCESSIBLE, WnckPagerAccessibleClass)) + +typedef struct _WnckPagerAccessible WnckPagerAccessible; +typedef struct _WnckPagerAccessibleClass WnckPagerAccessibleClass; + +struct _WnckPagerAccessible +{ + GtkAccessible parent; +}; + +struct _WnckPagerAccessibleClass +{ + GtkAccessibleClass parent_class; +}; + +GType wnck_pager_accessible_get_type (void) G_GNUC_CONST; + +AtkObject* wnck_pager_accessible_new (GtkWidget *widget); + +G_END_DECLS + +#endif /* __WNCK_PAGER_ACCESSIBLE_H__ */ diff --git a/libwnck/pager.c b/libwnck/pager.c new file mode 100644 index 0000000..53e9f6a --- /dev/null +++ b/libwnck/pager.c @@ -0,0 +1,2976 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ +/* vim: set sw=2 et: */ +/* pager object */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Kim Woelders + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2003, 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include + +#include "pager.h" +#include "workspace.h" +#include "window.h" +#include "xutils.h" +#include "pager-accessible-factory.h" +#include "workspace-accessible-factory.h" +#include "private.h" + +/** + * SECTION:pager + * @short_description: a pager widget, showing the content of workspaces. + * @see_also: #WnckScreen + * @stability: Unstable + * + * A #WnckPager shows a miniature view of the workspaces, representing managed + * windows by small rectangles, and allows the user to initiate various window + * manager actions by manipulating these representations. The #WnckPager offers + * ways to move windows between workspaces and to change the current workspace. + * + * Alternatively, a #WnckPager can be configured to only show the names of the + * workspace instead of their contents. + * + * The #WnckPager is also responsible for setting the layout of the workspaces. + * Since only one application can be responsible for setting the layout on a + * screen, the #WnckPager automatically tries to obtain the manager selection + * for the screen and only sets the layout if it owns the manager selection. + * See wnck_pager_set_orientation() and wnck_pager_set_n_rows() to change the + * layout. + */ + +#define N_SCREEN_CONNECTIONS 11 + +struct _WnckPagerPrivate +{ + WnckScreen *screen; + + int n_rows; /* really columns for vertical orientation */ + WnckPagerDisplayMode display_mode; + gboolean show_all_workspaces; + GtkShadowType shadow_type; + gboolean wrap_on_scroll; + + GtkOrientation orientation; + int workspace_size; + guint screen_connections[N_SCREEN_CONNECTIONS]; + int prelight; /* workspace mouse is hovering over */ + gboolean prelight_dnd; /* is dnd happening? */ + + guint dragging :1; + int drag_start_x; + int drag_start_y; + WnckWindow *drag_window; + + GdkPixbuf *bg_cache; + + int layout_manager_token; + + guint dnd_activate; /* GSource that triggers switching to this workspace during dnd */ + guint dnd_time; /* time of last event during dnd (for delayed workspace activation) */ +}; + +G_DEFINE_TYPE (WnckPager, wnck_pager, GTK_TYPE_WIDGET); +#define WNCK_PAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_PAGER, WnckPagerPrivate)) + +enum +{ + dummy, /* remove this when you add more signals */ + LAST_SIGNAL +}; + +#define POINT_IN_RECT(xcoord, ycoord, rect) \ + ((xcoord) >= (rect).x && \ + (xcoord) < ((rect).x + (rect).width) && \ + (ycoord) >= (rect).y && \ + (ycoord) < ((rect).y + (rect).height)) + +static void wnck_pager_finalize (GObject *object); + +static void wnck_pager_realize (GtkWidget *widget); +static void wnck_pager_unrealize (GtkWidget *widget); +static GtkSizeRequestMode wnck_pager_get_request_mode (GtkWidget *widget); +static void wnck_pager_get_preferred_width (GtkWidget *widget, + int *minimum_width, + int *natural_width); +static void wnck_pager_get_preferred_width_for_height (GtkWidget *widget, + int height, + int *minimum_width, + int *natural_width); +static void wnck_pager_get_preferred_height (GtkWidget *widget, + int *minimum_height, + int *natural_height); +static void wnck_pager_get_preferred_height_for_width (GtkWidget *widget, + int width, + int *minimum_height, + int *natural_height); +static void wnck_pager_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); +static gboolean wnck_pager_draw (GtkWidget *widget, + cairo_t *cr); +static gboolean wnck_pager_button_press (GtkWidget *widget, + GdkEventButton *event); +static gboolean wnck_pager_drag_motion (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time); +static void wnck_pager_drag_motion_leave (GtkWidget *widget, + GdkDragContext *context, + guint time); +static gboolean wnck_pager_drag_drop (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time); +static void wnck_pager_drag_data_received (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time_); +static void wnck_pager_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time); +static void wnck_pager_drag_end (GtkWidget *widget, + GdkDragContext *context); +static gboolean wnck_pager_motion (GtkWidget *widget, + GdkEventMotion *event); +static gboolean wnck_pager_leave_notify (GtkWidget *widget, + GdkEventCrossing *event); +static gboolean wnck_pager_button_release (GtkWidget *widget, + GdkEventButton *event); +static gboolean wnck_pager_scroll_event (GtkWidget *widget, + GdkEventScroll *event); +static gboolean wnck_pager_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_tip, + GtkTooltip *tooltip); +static void workspace_name_changed_callback (WnckWorkspace *workspace, + gpointer data); + +static gboolean wnck_pager_window_state_is_relevant (int state); +static gint wnck_pager_window_get_workspace (WnckWindow *window, + gboolean is_state_relevant); +static void wnck_pager_queue_draw_workspace (WnckPager *pager, + gint i); +static void wnck_pager_queue_draw_window (WnckPager *pager, + WnckWindow *window); + +static void wnck_pager_connect_screen (WnckPager *pager); +static void wnck_pager_connect_window (WnckPager *pager, + WnckWindow *window); +static void wnck_pager_disconnect_screen (WnckPager *pager); +static void wnck_pager_disconnect_window (WnckPager *pager, + WnckWindow *window); + +static gboolean wnck_pager_set_layout_hint (WnckPager *pager); + +static void wnck_pager_clear_drag (WnckPager *pager); +static void wnck_pager_check_prelight (WnckPager *pager, + gint x, + gint y, + gboolean dnd); + +static GdkPixbuf* wnck_pager_get_background (WnckPager *pager, + int width, + int height); + +static AtkObject* wnck_pager_get_accessible (GtkWidget *widget); + + +static void +wnck_pager_init (WnckPager *pager) +{ + int i; + static const GtkTargetEntry targets[] = { + { (gchar *) "application/x-wnck-window-id", 0, 0} + }; + + pager->priv = WNCK_PAGER_GET_PRIVATE (pager); + + pager->priv->n_rows = 1; + pager->priv->display_mode = WNCK_PAGER_DISPLAY_CONTENT; + pager->priv->show_all_workspaces = TRUE; + pager->priv->shadow_type = GTK_SHADOW_NONE; + pager->priv->wrap_on_scroll = FALSE; + + pager->priv->orientation = GTK_ORIENTATION_HORIZONTAL; + pager->priv->workspace_size = 48; + + for (i = 0; i < N_SCREEN_CONNECTIONS; i++) + pager->priv->screen_connections[i] = 0; + + pager->priv->prelight = -1; + + pager->priv->layout_manager_token = WNCK_NO_MANAGER_TOKEN; + + g_object_set (pager, "has-tooltip", TRUE, NULL); + + gtk_drag_dest_set (GTK_WIDGET (pager), 0, targets, G_N_ELEMENTS (targets), GDK_ACTION_MOVE); + gtk_widget_set_can_focus (GTK_WIDGET (pager), TRUE); +} + +static void +wnck_pager_class_init (WnckPagerClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckPagerPrivate)); + + object_class->finalize = wnck_pager_finalize; + + widget_class->realize = wnck_pager_realize; + widget_class->unrealize = wnck_pager_unrealize; + widget_class->get_request_mode = wnck_pager_get_request_mode; + widget_class->get_preferred_width = wnck_pager_get_preferred_width; + widget_class->get_preferred_width_for_height = wnck_pager_get_preferred_width_for_height; + widget_class->get_preferred_height = wnck_pager_get_preferred_height; + widget_class->get_preferred_height_for_width = wnck_pager_get_preferred_height_for_width; + widget_class->size_allocate = wnck_pager_size_allocate; + widget_class->draw = wnck_pager_draw; + widget_class->button_press_event = wnck_pager_button_press; + widget_class->button_release_event = wnck_pager_button_release; + widget_class->scroll_event = wnck_pager_scroll_event; + widget_class->motion_notify_event = wnck_pager_motion; + widget_class->leave_notify_event = wnck_pager_leave_notify; + widget_class->get_accessible = wnck_pager_get_accessible; + widget_class->drag_leave = wnck_pager_drag_motion_leave; + widget_class->drag_motion = wnck_pager_drag_motion; + widget_class->drag_drop = wnck_pager_drag_drop; + widget_class->drag_data_received = wnck_pager_drag_data_received; + widget_class->drag_data_get = wnck_pager_drag_data_get; + widget_class->drag_end = wnck_pager_drag_end; + widget_class->query_tooltip = wnck_pager_query_tooltip; + + gtk_widget_class_set_css_name (widget_class, "wnck-pager"); +} + +static void +wnck_pager_finalize (GObject *object) +{ + WnckPager *pager; + + pager = WNCK_PAGER (object); + + if (pager->priv->bg_cache) + { + g_object_unref (G_OBJECT (pager->priv->bg_cache)); + pager->priv->bg_cache = NULL; + } + + if (pager->priv->dnd_activate != 0) + { + g_source_remove (pager->priv->dnd_activate); + pager->priv->dnd_activate = 0; + } + + G_OBJECT_CLASS (wnck_pager_parent_class)->finalize (object); +} + +static void +_wnck_pager_set_screen (WnckPager *pager) +{ + GdkScreen *gdkscreen; + + if (!gtk_widget_has_screen (GTK_WIDGET (pager))) + return; + + gdkscreen = gtk_widget_get_screen (GTK_WIDGET (pager)); + pager->priv->screen = wnck_screen_get (gdk_x11_screen_get_screen_number (gdkscreen)); + + if (!wnck_pager_set_layout_hint (pager)) + { + _WnckLayoutOrientation orientation; + + /* we couldn't set the layout on the screen. This means someone else owns + * it. Let's at least show the correct layout. */ + _wnck_screen_get_workspace_layout (pager->priv->screen, + &orientation, + &pager->priv->n_rows, + NULL, NULL); + + /* test in this order to default to horizontal in case there was in issue + * when fetching the layout */ + if (orientation == WNCK_LAYOUT_ORIENTATION_VERTICAL) + pager->priv->orientation = GTK_ORIENTATION_VERTICAL; + else + pager->priv->orientation = GTK_ORIENTATION_HORIZONTAL; + + gtk_widget_queue_resize (GTK_WIDGET (pager)); + } + + wnck_pager_connect_screen (pager); +} + +static void +wnck_pager_realize (GtkWidget *widget) +{ + + GdkWindowAttr attributes; + gint attributes_mask; + WnckPager *pager; + GtkAllocation allocation; + GdkWindow *window; + + pager = WNCK_PAGER (widget); + + /* do not call the parent class realize since we're doing things a bit + * differently here */ + gtk_widget_set_realized (widget, TRUE); + + gtk_widget_get_allocation (widget, &allocation); + + attributes.window_type = GDK_WINDOW_CHILD; + attributes.x = allocation.x; + attributes.y = allocation.y; + attributes.width = allocation.width; + attributes.height = allocation.height; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gtk_widget_get_visual (widget); + attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | + GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | + GDK_SCROLL_MASK | + GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK | + GDK_POINTER_MOTION_HINT_MASK; + + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; + + window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask); + gtk_widget_set_window (widget, window); + gdk_window_set_user_data (window, widget); + + /* connect to the screen of this pager. In theory, this will already have + * been done in wnck_pager_size_request() */ + if (pager->priv->screen == NULL) + _wnck_pager_set_screen (pager); + g_assert (pager->priv->screen != NULL); +} + +static void +wnck_pager_unrealize (GtkWidget *widget) +{ + WnckPager *pager; + + pager = WNCK_PAGER (widget); + + wnck_pager_clear_drag (pager); + pager->priv->prelight = -1; + pager->priv->prelight_dnd = FALSE; + + wnck_screen_release_workspace_layout (pager->priv->screen, + pager->priv->layout_manager_token); + pager->priv->layout_manager_token = WNCK_NO_MANAGER_TOKEN; + + wnck_pager_disconnect_screen (pager); + pager->priv->screen = NULL; + + GTK_WIDGET_CLASS (wnck_pager_parent_class)->unrealize (widget); +} + +static void +_wnck_pager_get_padding (WnckPager *pager, + GtkBorder *padding) +{ + if (pager->priv->shadow_type != GTK_SHADOW_NONE) + { + GtkWidget *widget; + GtkStyleContext *context; + GtkStateFlags state; + + widget = GTK_WIDGET (pager); + context = gtk_widget_get_style_context (widget); + state = gtk_style_context_get_state (context); + gtk_style_context_get_padding (context, state, padding); + } + else + { + GtkBorder empty_padding = { 0, 0, 0, 0 }; + *padding = empty_padding; + } +} + +static int +_wnck_pager_get_workspace_width_for_height (WnckPager *pager, + int workspace_height) +{ + int workspace_width = 0; + + if (pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT) + { + WnckWorkspace *space; + double screen_aspect; + + space = wnck_screen_get_workspace (pager->priv->screen, 0); + + if (space) { + screen_aspect = + (double) wnck_workspace_get_width (space) / + (double) wnck_workspace_get_height (space); + } else { + screen_aspect = + (double) wnck_screen_get_width (pager->priv->screen) / + (double) wnck_screen_get_height (pager->priv->screen); + } + + workspace_width = screen_aspect * workspace_height; + } + else + { + PangoLayout *layout; + WnckScreen *screen; + int n_spaces; + int i, w; + + layout = gtk_widget_create_pango_layout (GTK_WIDGET (pager), NULL); + screen = pager->priv->screen; + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + workspace_width = 1; + + for (i = 0; i < n_spaces; i++) + { + pango_layout_set_text (layout, + wnck_workspace_get_name (wnck_screen_get_workspace (screen, i)), + -1); + pango_layout_get_pixel_size (layout, &w, NULL); + workspace_width = MAX (workspace_width, w); + } + + g_object_unref (layout); + + workspace_width += 2; + } + + return workspace_width; +} + +static int +_wnck_pager_get_workspace_height_for_width (WnckPager *pager, + int workspace_width) +{ + int workspace_height = 0; + WnckWorkspace *space; + double screen_aspect; + + /* TODO: Handle WNCK_PAGER_DISPLAY_NAME for this case */ + + space = wnck_screen_get_workspace (pager->priv->screen, 0); + + if (space) { + screen_aspect = + (double) wnck_workspace_get_height (space) / + (double) wnck_workspace_get_width (space); + } else { + screen_aspect = + (double) wnck_screen_get_height (pager->priv->screen) / + (double) wnck_screen_get_width (pager->priv->screen); + } + + workspace_height = screen_aspect * workspace_width; + + return workspace_height; +} + +static void +wnck_pager_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + WnckPager *pager; + int n_spaces; + int spaces_per_row; + int workspace_width, workspace_height; + int n_rows; + GtkBorder padding; + + pager = WNCK_PAGER (widget); + + /* if we're not realized, we don't know about our screen yet */ + if (pager->priv->screen == NULL) + _wnck_pager_set_screen (pager); + g_assert (pager->priv->screen != NULL); + + g_assert (pager->priv->n_rows > 0); + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + + if (pager->priv->show_all_workspaces) + { + n_rows = pager->priv->n_rows; + spaces_per_row = (n_spaces + n_rows - 1) / n_rows; + } + else + { + n_rows = 1; + spaces_per_row = 1; + } + + if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL) + { + workspace_width = pager->priv->workspace_size; + workspace_height = _wnck_pager_get_workspace_height_for_width (pager, + workspace_width); + + requisition->width = workspace_width * n_rows + (n_rows - 1); + requisition->height = workspace_height * spaces_per_row + (spaces_per_row - 1); + } + else + { + workspace_height = pager->priv->workspace_size; + workspace_width = _wnck_pager_get_workspace_width_for_height (pager, + workspace_height); + + requisition->width = workspace_width * spaces_per_row + (spaces_per_row - 1); + requisition->height = workspace_height * n_rows + (n_rows - 1); + } + + _wnck_pager_get_padding (pager, &padding); + requisition->width += padding.left + padding.right; + requisition->height += padding.top + padding.bottom; +} + +static GtkSizeRequestMode +wnck_pager_get_request_mode (GtkWidget *widget) +{ + WnckPager *pager; + + pager = WNCK_PAGER (widget); + + if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL) + return GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH; + else + return GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT; +} + +static void +wnck_pager_get_preferred_width (GtkWidget *widget, + int *minimum_width, + int *natural_width) +{ + GtkRequisition req; + + wnck_pager_size_request (widget, &req); + + *minimum_width = *natural_width = req.width; +} + +static void +wnck_pager_get_preferred_width_for_height (GtkWidget *widget, + int height, + int *minimum_width, + int *natural_width) +{ + WnckPager *pager; + int n_spaces; + int n_rows; + int spaces_per_row; + int workspace_width, workspace_height; + GtkBorder padding; + int width = 0; + + pager = WNCK_PAGER (widget); + + /* if we're not realized, we don't know about our screen yet */ + if (pager->priv->screen == NULL) + _wnck_pager_set_screen (pager); + g_assert (pager->priv->screen != NULL); + + g_assert (pager->priv->n_rows > 0); + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + + if (pager->priv->show_all_workspaces) + { + n_rows = pager->priv->n_rows; + spaces_per_row = (n_spaces + n_rows - 1) / n_rows; + } + else + { + n_rows = 1; + spaces_per_row = 1; + } + + _wnck_pager_get_padding (pager, &padding); + height -= padding.top + padding.bottom; + width += padding.left + padding.right; + + height -= (n_rows - 1); + workspace_height = height / n_rows; + + workspace_width = _wnck_pager_get_workspace_width_for_height (pager, + workspace_height); + + width += workspace_width * spaces_per_row + (spaces_per_row - 1); + *natural_width = *minimum_width = width; +} + +static void +wnck_pager_get_preferred_height (GtkWidget *widget, + int *minimum_height, + int *natural_height) +{ + GtkRequisition req; + + wnck_pager_size_request (widget, &req); + + *minimum_height = *natural_height = req.height; +} + +static void +wnck_pager_get_preferred_height_for_width (GtkWidget *widget, + int width, + int *minimum_height, + int *natural_height) +{ + WnckPager *pager; + int n_spaces; + int n_rows; + int spaces_per_row; + int workspace_width, workspace_height; + GtkBorder padding; + int height = 0; + + pager = WNCK_PAGER (widget); + + /* if we're not realized, we don't know about our screen yet */ + if (pager->priv->screen == NULL) + _wnck_pager_set_screen (pager); + g_assert (pager->priv->screen != NULL); + + g_assert (pager->priv->n_rows > 0); + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + + if (pager->priv->show_all_workspaces) + { + n_rows = pager->priv->n_rows; + spaces_per_row = (n_spaces + n_rows - 1) / n_rows; + } + else + { + n_rows = 1; + spaces_per_row = 1; + } + + _wnck_pager_get_padding (pager, &padding); + width -= padding.left + padding.right; + height += padding.top + padding.bottom; + + width -= (n_rows - 1); + workspace_width = width / n_rows; + + workspace_height = _wnck_pager_get_workspace_height_for_width (pager, + workspace_width); + + height += workspace_height * spaces_per_row + (spaces_per_row - 1); + *natural_height = *minimum_height = height; +} + +static gboolean +_wnck_pager_queue_resize (gpointer data) +{ + gtk_widget_queue_resize (GTK_WIDGET (data)); + return FALSE; +} + +static void +wnck_pager_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + WnckPager *pager; + int workspace_size; + GtkBorder padding; + int width; + int height; + + pager = WNCK_PAGER (widget); + + width = allocation->width; + height = allocation->height; + + _wnck_pager_get_padding (pager, &padding); + width -= padding.left + padding.right; + height -= padding.top + padding.bottom; + + g_assert (pager->priv->n_rows > 0); + + if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL) + { + if (pager->priv->show_all_workspaces) + workspace_size = (width - (pager->priv->n_rows - 1)) / pager->priv->n_rows; + else + workspace_size = width; + } + else + { + if (pager->priv->show_all_workspaces) + workspace_size = (height - (pager->priv->n_rows - 1))/ pager->priv->n_rows; + else + workspace_size = height; + } + + workspace_size = MAX (workspace_size, 1); + + if (workspace_size != pager->priv->workspace_size) + { + pager->priv->workspace_size = workspace_size; + g_idle_add (_wnck_pager_queue_resize, pager); + return; + } + + GTK_WIDGET_CLASS (wnck_pager_parent_class)->size_allocate (widget, + allocation); +} + +static void +get_workspace_rect (WnckPager *pager, + int space, + GdkRectangle *rect) +{ + int hsize, vsize; + int n_spaces; + int spaces_per_row; + GtkWidget *widget; + int col, row; + GtkAllocation allocation; + GtkBorder padding; + + widget = GTK_WIDGET (pager); + + gtk_widget_get_allocation (widget, &allocation); + + if (allocation.x < 0 || allocation.y < 0 || + allocation.width < 0 || allocation.height < 0) + { + rect->x = 0; + rect->y = 0; + rect->width = 0; + rect->height = 0; + + return; + } + + _wnck_pager_get_padding (pager, &padding); + + if (!pager->priv->show_all_workspaces) + { + WnckWorkspace *active_space; + + active_space = wnck_screen_get_active_workspace (pager->priv->screen); + + if (active_space && space == wnck_workspace_get_number (active_space)) + { + rect->x = padding.left; + rect->y = padding.top; + rect->width = allocation.width - padding.left - padding.right; + rect->height = allocation.height - padding.top - padding.bottom; + } + else + { + rect->x = 0; + rect->y = 0; + rect->width = 0; + rect->height = 0; + } + + return; + } + + hsize = allocation.width; + vsize = allocation.height; + + if (pager->priv->shadow_type != GTK_SHADOW_NONE) + { + hsize -= padding.left + padding.right; + vsize -= padding.top + padding.bottom; + } + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + + g_assert (pager->priv->n_rows > 0); + spaces_per_row = (n_spaces + pager->priv->n_rows - 1) / pager->priv->n_rows; + + if (pager->priv->orientation == GTK_ORIENTATION_VERTICAL) + { + rect->width = (hsize - (pager->priv->n_rows - 1)) / pager->priv->n_rows; + rect->height = (vsize - (spaces_per_row - 1)) / spaces_per_row; + + col = space / spaces_per_row; + row = space % spaces_per_row; + + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) + col = pager->priv->n_rows - col - 1; + + rect->x = (rect->width + 1) * col; + rect->y = (rect->height + 1) * row; + + if (col == pager->priv->n_rows - 1) + rect->width = hsize - rect->x; + + if (row == spaces_per_row - 1) + rect->height = vsize - rect->y; + } + else + { + rect->width = (hsize - (spaces_per_row - 1)) / spaces_per_row; + rect->height = (vsize - (pager->priv->n_rows - 1)) / pager->priv->n_rows; + + col = space % spaces_per_row; + row = space / spaces_per_row; + + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) + col = spaces_per_row - col - 1; + + rect->x = (rect->width + 1) * col; + rect->y = (rect->height + 1) * row; + + if (col == spaces_per_row - 1) + rect->width = hsize - rect->x; + + if (row == pager->priv->n_rows - 1) + rect->height = vsize - rect->y; + } + + if (pager->priv->shadow_type != GTK_SHADOW_NONE) + { + rect->x += padding.left; + rect->y += padding.top; + } +} + +static gboolean +wnck_pager_window_state_is_relevant (int state) +{ + return (state & (WNCK_WINDOW_STATE_HIDDEN | WNCK_WINDOW_STATE_SKIP_PAGER)) ? FALSE : TRUE; +} + +static gint +wnck_pager_window_get_workspace (WnckWindow *window, + gboolean is_state_relevant) +{ + gint state; + WnckWorkspace *workspace; + + state = wnck_window_get_state (window); + if (is_state_relevant && !wnck_pager_window_state_is_relevant (state)) + return -1; + workspace = wnck_window_get_workspace (window); + if (workspace == NULL && wnck_window_is_pinned (window)) + workspace = wnck_screen_get_active_workspace (wnck_window_get_screen (window)); + + return workspace ? wnck_workspace_get_number (workspace) : -1; +} + +static GList* +get_windows_for_workspace_in_bottom_to_top (WnckScreen *screen, + WnckWorkspace *workspace) +{ + GList *result; + GList *windows; + GList *tmp; + int workspace_num; + + result = NULL; + workspace_num = wnck_workspace_get_number (workspace); + + windows = wnck_screen_get_windows_stacked (screen); + for (tmp = windows; tmp != NULL; tmp = tmp->next) + { + WnckWindow *win = WNCK_WINDOW (tmp->data); + if (wnck_pager_window_get_workspace (win, TRUE) == workspace_num) + result = g_list_prepend (result, win); + } + + result = g_list_reverse (result); + + return result; +} + +static void +get_window_rect (WnckWindow *window, + const GdkRectangle *workspace_rect, + GdkRectangle *rect) +{ + double width_ratio, height_ratio; + int x, y, width, height; + WnckWorkspace *workspace; + GdkRectangle unclipped_win_rect; + + workspace = wnck_window_get_workspace (window); + if (workspace == NULL) + workspace = wnck_screen_get_active_workspace (wnck_window_get_screen (window)); + + /* scale window down by same ratio we scaled workspace down */ + width_ratio = (double) workspace_rect->width / (double) wnck_workspace_get_width (workspace); + height_ratio = (double) workspace_rect->height / (double) wnck_workspace_get_height (workspace); + + wnck_window_get_geometry (window, &x, &y, &width, &height); + + x += wnck_workspace_get_viewport_x (workspace); + y += wnck_workspace_get_viewport_y (workspace); + x = x * width_ratio + 0.5; + y = y * height_ratio + 0.5; + width = width * width_ratio + 0.5; + height = height * height_ratio + 0.5; + + x += workspace_rect->x; + y += workspace_rect->y; + + if (width < 3) + width = 3; + if (height < 3) + height = 3; + + unclipped_win_rect.x = x; + unclipped_win_rect.y = y; + unclipped_win_rect.width = width; + unclipped_win_rect.height = height; + + gdk_rectangle_intersect ((GdkRectangle *) workspace_rect, &unclipped_win_rect, rect); +} + +static void +draw_window (cairo_t *cr, + GtkWidget *widget, + WnckWindow *win, + const GdkRectangle *winrect, + GtkStateFlags state, + gboolean translucent) +{ + GtkStyleContext *context; + GdkPixbuf *icon; + int icon_x, icon_y, icon_w, icon_h; + gboolean is_active; + GdkRGBA fg; + gdouble translucency; + + context = gtk_widget_get_style_context (widget); + + is_active = wnck_window_is_active (win); + translucency = translucent ? 0.4 : 1.0; + + gtk_style_context_save (context); + gtk_style_context_set_state (context, state); + + cairo_push_group (cr); + + gtk_render_background (context, cr, winrect->x + 1, winrect->y + 1, + MAX (0, winrect->width - 2), MAX (0, winrect->height - 2)); + + if (is_active) + { + /* Sharpen the foreground color */ + cairo_set_source_rgba (cr, 1.0f, 1.0f, 1.0f, 0.3f); + cairo_rectangle (cr, winrect->x + 1, winrect->y + 1, + MAX (0, winrect->width - 2), MAX (0, winrect->height - 2)); + cairo_fill (cr); + } + + cairo_pop_group_to_source (cr); + cairo_paint_with_alpha (cr, translucency); + + icon = wnck_window_get_icon (win); + + icon_w = icon_h = 0; + + if (icon) + { + icon_w = gdk_pixbuf_get_width (icon); + icon_h = gdk_pixbuf_get_height (icon); + + /* If the icon is too big, fall back to mini icon. + * We don't arbitrarily scale the icon, because it's + * just too slow on my Athlon 850. + */ + if (icon_w > (winrect->width - 2) || + icon_h > (winrect->height - 2)) + { + icon = wnck_window_get_mini_icon (win); + if (icon) + { + icon_w = gdk_pixbuf_get_width (icon); + icon_h = gdk_pixbuf_get_height (icon); + + /* Give up. */ + if (icon_w > (winrect->width - 2) || + icon_h > (winrect->height - 2)) + icon = NULL; + } + } + } + + if (icon) + { + icon_x = winrect->x + (winrect->width - icon_w) / 2; + icon_y = winrect->y + (winrect->height - icon_h) / 2; + + cairo_push_group (cr); + gtk_render_icon (context, cr, icon, icon_x, icon_y); + cairo_pop_group_to_source (cr); + cairo_paint_with_alpha (cr, translucency); + } + + cairo_push_group (cr); + gtk_render_frame (context, cr, winrect->x + 0.5, winrect->y + 0.5, + MAX (0, winrect->width - 1), MAX (0, winrect->height - 1)); + cairo_pop_group_to_source (cr); + cairo_paint_with_alpha (cr, translucency); + + gtk_style_context_get_color (context, state, &fg); + fg.alpha = translucency; + gdk_cairo_set_source_rgba (cr, &fg); + cairo_set_line_width (cr, 1.0); + cairo_rectangle (cr, + winrect->x + 0.5, winrect->y + 0.5, + MAX (0, winrect->width - 1), MAX (0, winrect->height - 1)); + cairo_stroke (cr); + + gtk_style_context_restore (context); +} + +static WnckWindow * +window_at_point (WnckPager *pager, + WnckWorkspace *space, + GdkRectangle *space_rect, + int x, + int y) +{ + WnckWindow *window; + GList *windows; + GList *tmp; + + window = NULL; + + windows = get_windows_for_workspace_in_bottom_to_top (pager->priv->screen, + space); + + /* clicks on top windows first */ + windows = g_list_reverse (windows); + + for (tmp = windows; tmp != NULL; tmp = tmp->next) + { + WnckWindow *win = WNCK_WINDOW (tmp->data); + GdkRectangle winrect; + + get_window_rect (win, space_rect, &winrect); + + if (POINT_IN_RECT (x, y, winrect)) + { + /* wnck_window_activate (win); */ + window = win; + break; + } + } + + g_list_free (windows); + + return window; +} + +static int +workspace_at_point (WnckPager *pager, + int x, + int y, + int *viewport_x, + int *viewport_y) +{ + GtkWidget *widget; + int i; + int n_spaces; + GtkAllocation allocation; + GtkBorder padding; + + widget = GTK_WIDGET (pager); + + gtk_widget_get_allocation (widget, &allocation); + + _wnck_pager_get_padding (pager, &padding); + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + + i = 0; + while (i < n_spaces) + { + GdkRectangle rect; + + get_workspace_rect (pager, i, &rect); + + /* If workspace is on the edge, pretend points on the frame belong to the + * workspace. + * Else, pretend the right/bottom line separating two workspaces belong + * to the workspace. + */ + + if (rect.x == padding.left) + { + rect.x = 0; + rect.width += padding.left; + } + if (rect.y == padding.top) + { + rect.y = 0; + rect.height += padding.top; + } + if (rect.y + rect.height == allocation.height - padding.bottom) + { + rect.height += padding.bottom; + } + else + { + rect.height += 1; + } + if (rect.x + rect.width == allocation.width - padding.right) + { + rect.width += padding.right; + } + else + { + rect.width += 1; + } + + if (POINT_IN_RECT (x, y, rect)) + { + double width_ratio, height_ratio; + WnckWorkspace *space; + + space = wnck_screen_get_workspace (pager->priv->screen, i); + g_assert (space != NULL); + + /* Scale x, y mouse coords to corresponding screenwide viewport coords */ + + width_ratio = (double) wnck_workspace_get_width (space) / (double) rect.width; + height_ratio = (double) wnck_workspace_get_height (space) / (double) rect.height; + + if (viewport_x) + *viewport_x = width_ratio * (x - rect.x); + if (viewport_y) + *viewport_y = height_ratio * (y - rect.y); + + return i; + } + + ++i; + } + + return -1; +} + +static void +draw_dark_rectangle (GtkStyleContext *context, + cairo_t *cr, + GtkStateFlags state, + int rx, int ry, int rw, int rh) +{ + gtk_style_context_save (context); + + gtk_style_context_set_state (context, state); + + cairo_push_group (cr); + + gtk_render_background (context, cr, rx, ry, rw, rh); + cairo_set_source_rgba (cr, 0.0f, 0.0f, 0.0f, 0.3f); + cairo_rectangle (cr, rx, ry, rw, rh); + cairo_fill (cr); + + cairo_pop_group_to_source (cr); + cairo_paint (cr); + + gtk_style_context_restore (context); +} + +static void +wnck_pager_draw_workspace (WnckPager *pager, + cairo_t *cr, + int workspace, + GdkRectangle *rect, + GdkPixbuf *bg_pixbuf) +{ + GList *windows; + GList *tmp; + gboolean is_current; + WnckWorkspace *space; + GtkWidget *widget; + GtkStateFlags state; + GtkStyleContext *context; + + space = wnck_screen_get_workspace (pager->priv->screen, workspace); + if (!space) + return; + + widget = GTK_WIDGET (pager); + is_current = (space == wnck_screen_get_active_workspace (pager->priv->screen)); + + state = GTK_STATE_FLAG_NORMAL; + if (is_current) + state |= GTK_STATE_FLAG_SELECTED; + else if (workspace == pager->priv->prelight) + state |= GTK_STATE_FLAG_PRELIGHT; + + context = gtk_widget_get_style_context (widget); + + /* FIXME in names mode, should probably draw things like a button. + */ + + if (bg_pixbuf) + { + gdk_cairo_set_source_pixbuf (cr, bg_pixbuf, rect->x, rect->y); + cairo_paint (cr); + } + else + { + if (!wnck_workspace_is_virtual (space)) + { + draw_dark_rectangle (context, cr, state, + rect->x, rect->y, rect->width, rect->height); + } + else + { + //FIXME prelight for dnd in the viewport? + int workspace_width, workspace_height; + int screen_width, screen_height; + double width_ratio, height_ratio; + double vx, vy, vw, vh; /* viewport */ + + workspace_width = wnck_workspace_get_width (space); + workspace_height = wnck_workspace_get_height (space); + screen_width = wnck_screen_get_width (pager->priv->screen); + screen_height = wnck_screen_get_height (pager->priv->screen); + + if ((workspace_width % screen_width == 0) && + (workspace_height % screen_height == 0)) + { + int i, j; + int active_i, active_j; + int horiz_views; + int verti_views; + + horiz_views = workspace_width / screen_width; + verti_views = workspace_height / screen_height; + + /* do not forget thin lines to delimit "workspaces" */ + width_ratio = (rect->width - (horiz_views - 1)) / + (double) workspace_width; + height_ratio = (rect->height - (verti_views - 1)) / + (double) workspace_height; + + if (is_current) + { + active_i = + wnck_workspace_get_viewport_x (space) / screen_width; + active_j = + wnck_workspace_get_viewport_y (space) / screen_height; + } + else + { + active_i = -1; + active_j = -1; + } + + for (i = 0; i < horiz_views; i++) + { + /* "+ i" is for the thin lines */ + vx = rect->x + (width_ratio * screen_width) * i + i; + + if (i == horiz_views - 1) + vw = rect->width + rect->x - vx; + else + vw = width_ratio * screen_width; + + vh = height_ratio * screen_height; + + for (j = 0; j < verti_views; j++) + { + GtkStateFlags rec_state = GTK_STATE_FLAG_NORMAL; + + /* "+ j" is for the thin lines */ + vy = rect->y + (height_ratio * screen_height) * j + j; + + if (j == verti_views - 1) + vh = rect->height + rect->y - vy; + + if (active_i == i && active_j == j) + rec_state = GTK_STATE_FLAG_SELECTED; + + draw_dark_rectangle (context, cr, rec_state, vx, vy, vw, vh); + } + } + } + else + { + width_ratio = rect->width / (double) workspace_width; + height_ratio = rect->height / (double) workspace_height; + + /* first draw non-active part of the viewport */ + draw_dark_rectangle (context, cr, GTK_STATE_FLAG_NORMAL, + rect->x, rect->y, rect->width, rect->height); + + if (is_current) + { + /* draw the active part of the viewport */ + vx = rect->x + + width_ratio * wnck_workspace_get_viewport_x (space); + vy = rect->y + + height_ratio * wnck_workspace_get_viewport_y (space); + vw = width_ratio * screen_width; + vh = height_ratio * screen_height; + + draw_dark_rectangle (context, cr, GTK_STATE_FLAG_SELECTED, + vx, vy, vw, vh); + } + } + } + } + + if (pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT) + { + windows = get_windows_for_workspace_in_bottom_to_top (pager->priv->screen, + wnck_screen_get_workspace (pager->priv->screen, + workspace)); + + tmp = windows; + while (tmp != NULL) + { + WnckWindow *win = tmp->data; + GdkRectangle winrect; + gboolean translucent; + + get_window_rect (win, rect, &winrect); + + translucent = (win == pager->priv->drag_window) && pager->priv->dragging; + draw_window (cr, widget, win, &winrect, state, translucent); + + tmp = tmp->next; + } + + g_list_free (windows); + } + else + { + /* Workspace name mode */ + GtkStateFlags layout_state; + const char *workspace_name; + PangoLayout *layout; + WnckWorkspace *ws; + int w, h; + + ws = wnck_screen_get_workspace (pager->priv->screen, workspace); + workspace_name = wnck_workspace_get_name (ws); + layout = gtk_widget_create_pango_layout (widget, workspace_name); + + pango_layout_get_pixel_size (layout, &w, &h); + + layout_state = (is_current) ? GTK_STATE_FLAG_SELECTED : GTK_STATE_FLAG_NORMAL; + gtk_style_context_save (context); + gtk_style_context_set_state (context, layout_state); + gtk_render_layout (context, cr, rect->x + (rect->width - w) / 2, + rect->y + (rect->height - h) / 2, layout); + + gtk_style_context_restore (context); + g_object_unref (layout); + } + + if (workspace == pager->priv->prelight && pager->priv->prelight_dnd) + { + gtk_style_context_save (context); + gtk_style_context_set_state (context, GTK_STATE_FLAG_NORMAL); + gtk_render_frame (context, cr, rect->x, rect->y, rect->width, rect->height); + gtk_style_context_restore (context); + + cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); /* black */ + cairo_set_line_width (cr, 1.0); + cairo_rectangle (cr, rect->x + 0.5, rect->y + 0.5, + MAX (0, rect->width - 1), MAX (0, rect->height - 1)); + cairo_stroke (cr); + } +} + +static gboolean +wnck_pager_draw (GtkWidget *widget, + cairo_t *cr) +{ + WnckPager *pager; + int i; + int n_spaces; + WnckWorkspace *active_space; + GdkPixbuf *bg_pixbuf; + gboolean first; + GtkStyleContext *context; + GtkStateFlags state; + + pager = WNCK_PAGER (widget); + + n_spaces = wnck_screen_get_workspace_count (pager->priv->screen); + active_space = wnck_screen_get_active_workspace (pager->priv->screen); + bg_pixbuf = NULL; + first = TRUE; + + state = gtk_widget_get_state_flags (widget); + context = gtk_widget_get_style_context (widget); + + gtk_render_background (context, cr, 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + + gtk_style_context_save (context); + gtk_style_context_set_state (context, state); + + if (gtk_widget_has_focus (widget)) + { + cairo_save (cr); + gtk_render_focus (context, cr, + 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + cairo_restore (cr); + } + + if (pager->priv->shadow_type != GTK_SHADOW_NONE) + { + cairo_save (cr); + gtk_render_frame (context, cr, 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + cairo_restore (cr); + } + + gtk_style_context_restore (context); + + i = 0; + while (i < n_spaces) + { + GdkRectangle rect; + + if (pager->priv->show_all_workspaces || + (active_space && i == wnck_workspace_get_number (active_space))) + { + get_workspace_rect (pager, i, &rect); + + /* We only want to do this once, even if w/h change, + * for efficiency. width/height will only change by + * one pixel at most. + */ + if (first && + pager->priv->display_mode == WNCK_PAGER_DISPLAY_CONTENT) + { + bg_pixbuf = wnck_pager_get_background (pager, + rect.width, + rect.height); + first = FALSE; + } + + wnck_pager_draw_workspace (pager, cr, i, &rect, bg_pixbuf); + } + + ++i; + } + + return FALSE; +} + +static gboolean +wnck_pager_button_press (GtkWidget *widget, + GdkEventButton *event) +{ + WnckPager *pager; + int space_number; + WnckWorkspace *space = NULL; + GdkRectangle workspace_rect; + + if (event->button != 1) + return FALSE; + + pager = WNCK_PAGER (widget); + + space_number = workspace_at_point (pager, event->x, event->y, NULL, NULL); + + if (space_number != -1) + { + get_workspace_rect (pager, space_number, &workspace_rect); + space = wnck_screen_get_workspace (pager->priv->screen, space_number); + } + + if (space) + { + /* always save the start coordinates so we can know if we need to change + * workspace when the button is released (ie, start and end coordinates + * should be in the same workspace) */ + pager->priv->drag_start_x = event->x; + pager->priv->drag_start_y = event->y; + } + + if (space && (pager->priv->display_mode != WNCK_PAGER_DISPLAY_NAME)) + { + pager->priv->drag_window = window_at_point (pager, space, + &workspace_rect, + event->x, event->y); + } + + return TRUE; +} + +static gboolean +wnck_pager_drag_motion_timeout (gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + WnckWorkspace *active_workspace, *dnd_workspace; + + pager->priv->dnd_activate = 0; + active_workspace = wnck_screen_get_active_workspace (pager->priv->screen); + dnd_workspace = wnck_screen_get_workspace (pager->priv->screen, + pager->priv->prelight); + + if (dnd_workspace && + (pager->priv->prelight != wnck_workspace_get_number (active_workspace))) + wnck_workspace_activate (dnd_workspace, pager->priv->dnd_time); + + return FALSE; +} + +static void +wnck_pager_queue_draw_workspace (WnckPager *pager, + gint i) +{ + GdkRectangle rect; + + if (i < 0) + return; + + get_workspace_rect (pager, i, &rect); + gtk_widget_queue_draw_area (GTK_WIDGET (pager), + rect.x, rect.y, + rect.width, rect.height); +} + +static void +wnck_pager_queue_draw_window (WnckPager *pager, + WnckWindow *window) +{ + gint workspace; + + workspace = wnck_pager_window_get_workspace (window, TRUE); + if (workspace == -1) + return; + + wnck_pager_queue_draw_workspace (pager, workspace); +} + +static void +wnck_pager_check_prelight (WnckPager *pager, + gint x, + gint y, + gboolean prelight_dnd) +{ + gint id; + + if (x < 0 || y < 0) + id = -1; + else + id = workspace_at_point (pager, x, y, NULL, NULL); + + if (id != pager->priv->prelight) + { + wnck_pager_queue_draw_workspace (pager, pager->priv->prelight); + wnck_pager_queue_draw_workspace (pager, id); + pager->priv->prelight = id; + pager->priv->prelight_dnd = prelight_dnd; + } + else if (prelight_dnd != pager->priv->prelight_dnd) + { + wnck_pager_queue_draw_workspace (pager, pager->priv->prelight); + pager->priv->prelight_dnd = prelight_dnd; + } +} + +static gboolean +wnck_pager_drag_motion (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time) +{ + WnckPager *pager; + gint previous_workspace; + + pager = WNCK_PAGER (widget); + + previous_workspace = pager->priv->prelight; + wnck_pager_check_prelight (pager, x, y, TRUE); + + if (gtk_drag_dest_find_target (widget, context, NULL)) + { + gdk_drag_status (context, gdk_drag_context_get_suggested_action (context), time); + } + else + { + gdk_drag_status (context, 0, time); + + if (pager->priv->prelight != previous_workspace && + pager->priv->dnd_activate != 0) + { + /* remove timeout, the window we hover over changed */ + g_source_remove (pager->priv->dnd_activate); + pager->priv->dnd_activate = 0; + pager->priv->dnd_time = 0; + } + + if (pager->priv->dnd_activate == 0 && pager->priv->prelight > -1) + { + pager->priv->dnd_activate = g_timeout_add_seconds (WNCK_ACTIVATE_TIMEOUT, + wnck_pager_drag_motion_timeout, + pager); + pager->priv->dnd_time = time; + } + } + + return (pager->priv->prelight != -1); +} + +static gboolean +wnck_pager_drag_drop (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time) +{ + WnckPager *pager = WNCK_PAGER (widget); + GdkAtom target; + + target = gtk_drag_dest_find_target (widget, context, NULL); + + if (target != GDK_NONE) + gtk_drag_get_data (widget, context, target, time); + else + gtk_drag_finish (context, FALSE, FALSE, time); + + wnck_pager_clear_drag (pager); + wnck_pager_check_prelight (pager, x, y, FALSE); + + return TRUE; +} + +static void +wnck_pager_drag_data_received (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *selection_data, + guint info, + guint time) +{ + WnckPager *pager = WNCK_PAGER (widget); + WnckWorkspace *space; + GList *tmp; + gint i; + gulong xid; + + if ((gtk_selection_data_get_length (selection_data) != sizeof (gulong)) || + (gtk_selection_data_get_format (selection_data) != 8)) + { + gtk_drag_finish (context, FALSE, FALSE, time); + return; + } + + i = workspace_at_point (pager, x, y, NULL, NULL); + space = wnck_screen_get_workspace (pager->priv->screen, i); + if (!space) + { + gtk_drag_finish (context, FALSE, FALSE, time); + return; + } + + xid = *((gulong *) gtk_selection_data_get_data (selection_data)); + + for (tmp = wnck_screen_get_windows_stacked (pager->priv->screen); tmp != NULL; tmp = tmp->next) + { + if (wnck_window_get_xid (tmp->data) == xid) + { + WnckWindow *win = tmp->data; + wnck_window_move_to_workspace (win, space); + if (space == wnck_screen_get_active_workspace (pager->priv->screen)) + wnck_window_activate (win, time); + gtk_drag_finish (context, TRUE, FALSE, time); + return; + } + } + + gtk_drag_finish (context, FALSE, FALSE, time); +} + +static void +wnck_pager_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time) +{ + WnckPager *pager = WNCK_PAGER (widget); + gulong xid; + + if (pager->priv->drag_window == NULL) + return; + + xid = wnck_window_get_xid (pager->priv->drag_window); + gtk_selection_data_set (selection_data, + gtk_selection_data_get_target (selection_data), + 8, (guchar *)&xid, sizeof (gulong)); +} + +static void +wnck_pager_drag_end (GtkWidget *widget, + GdkDragContext *context) +{ + WnckPager *pager = WNCK_PAGER (widget); + + wnck_pager_clear_drag (pager); +} + +static void +wnck_pager_drag_motion_leave (GtkWidget *widget, + GdkDragContext *context, + guint time) +{ + WnckPager *pager = WNCK_PAGER (widget); + + if (pager->priv->dnd_activate != 0) + { + g_source_remove (pager->priv->dnd_activate); + pager->priv->dnd_activate = 0; + } + pager->priv->dnd_time = 0; + wnck_pager_check_prelight (pager, -1, -1, FALSE); +} + +static void +wnck_drag_clean_up (WnckWindow *window, + GdkDragContext *context, + gboolean clean_up_for_context_destroy, + gboolean clean_up_for_window_destroy); + +static void +wnck_drag_context_destroyed (gpointer windowp, + GObject *context) +{ + wnck_drag_clean_up (windowp, (GdkDragContext *) context, TRUE, FALSE); +} + +static void +wnck_update_drag_icon (WnckWindow *window, + GdkDragContext *context) +{ + gint org_w, org_h, dnd_w, dnd_h; + WnckWorkspace *workspace; + GdkRectangle rect; + cairo_surface_t *surface; + GtkWidget *widget; + cairo_t *cr; + + widget = g_object_get_data (G_OBJECT (context), "wnck-drag-source-widget"); + if (!widget) + return; + + if (!gtk_icon_size_lookup (GTK_ICON_SIZE_DND, &dnd_w, &dnd_h)) + dnd_w = dnd_h = 32; + /* windows are huge, so let's make this huge */ + dnd_w *= 3; + + workspace = wnck_window_get_workspace (window); + if (workspace == NULL) + workspace = wnck_screen_get_active_workspace (wnck_window_get_screen (window)); + if (workspace == NULL) + return; + + wnck_window_get_geometry (window, NULL, NULL, &org_w, &org_h); + + rect.x = rect.y = 0; + rect.width = 0.5 + ((double) (dnd_w * org_w) / (double) wnck_workspace_get_width (workspace)); + rect.width = MIN (org_w, rect.width); + rect.height = 0.5 + ((double) (rect.width * org_h) / (double) org_w); + + /* we need at least three pixels to draw the smallest window */ + rect.width = MAX (rect.width, 3); + rect.height = MAX (rect.height, 3); + + surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget), + CAIRO_CONTENT_COLOR, + rect.width, rect.height); + cr = cairo_create (surface); + draw_window (cr, widget, window, &rect, GTK_STATE_FLAG_NORMAL, FALSE); + cairo_destroy (cr); + cairo_surface_set_device_offset (surface, 2, 2); + + gtk_drag_set_icon_surface (context, surface); + + cairo_surface_destroy (surface); +} + +static void +wnck_drag_window_destroyed (gpointer contextp, + GObject *window) +{ + wnck_drag_clean_up ((WnckWindow *) window, GDK_DRAG_CONTEXT (contextp), + FALSE, TRUE); +} + +static void +wnck_drag_source_destroyed (gpointer contextp, + GObject *drag_source) +{ + g_object_steal_data (G_OBJECT (contextp), "wnck-drag-source-widget"); +} + +/* CAREFUL: This function is a bit brittle, because the pointers given may be + * finalized already */ +static void +wnck_drag_clean_up (WnckWindow *window, + GdkDragContext *context, + gboolean clean_up_for_context_destroy, + gboolean clean_up_for_window_destroy) +{ + if (clean_up_for_context_destroy) + { + GtkWidget *drag_source; + + drag_source = g_object_get_data (G_OBJECT (context), + "wnck-drag-source-widget"); + if (drag_source) + g_object_weak_unref (G_OBJECT (drag_source), + wnck_drag_source_destroyed, context); + + g_object_weak_unref (G_OBJECT (window), + wnck_drag_window_destroyed, context); + if (g_signal_handlers_disconnect_by_func (window, + wnck_update_drag_icon, context) != 2) + g_assert_not_reached (); + } + + if (clean_up_for_window_destroy) + { + g_object_steal_data (G_OBJECT (context), "wnck-drag-source-widget"); + g_object_weak_unref (G_OBJECT (context), + wnck_drag_context_destroyed, window); + } +} + +/** + * wnck_window_set_as_drag_icon: + * @window: #WnckWindow to use as drag icon + * @context: #GdkDragContext to set the icon on + * @drag_source: #GtkWidget that started the drag, or one of its parent. This + * widget needs to stay alive as long as possible during the drag. + * + * Sets the given @window as the drag icon for @context. + **/ +void +_wnck_window_set_as_drag_icon (WnckWindow *window, + GdkDragContext *context, + GtkWidget *drag_source) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (GDK_IS_DRAG_CONTEXT (context)); + + g_object_weak_ref (G_OBJECT (window), wnck_drag_window_destroyed, context); + g_signal_connect (window, "geometry_changed", + G_CALLBACK (wnck_update_drag_icon), context); + g_signal_connect (window, "icon_changed", + G_CALLBACK (wnck_update_drag_icon), context); + + g_object_set_data (G_OBJECT (context), "wnck-drag-source-widget", drag_source); + g_object_weak_ref (G_OBJECT (drag_source), wnck_drag_source_destroyed, context); + + g_object_weak_ref (G_OBJECT (context), wnck_drag_context_destroyed, window); + + wnck_update_drag_icon (window, context); +} + +static gboolean +wnck_pager_motion (GtkWidget *widget, + GdkEventMotion *event) +{ + WnckPager *pager; + GdkWindow *window; + GdkSeat *seat; + GdkDevice *pointer; + int x, y; + + pager = WNCK_PAGER (widget); + + seat = gdk_display_get_default_seat (gtk_widget_get_display (widget)); + window = gtk_widget_get_window (widget); + pointer = gdk_seat_get_pointer (seat); + gdk_window_get_device_position (window, pointer, &x, &y, NULL); + + if (!pager->priv->dragging && + pager->priv->drag_window != NULL && + gtk_drag_check_threshold (widget, + pager->priv->drag_start_x, + pager->priv->drag_start_y, + x, y)) + { + GtkTargetList *target_list; + GdkDragContext *context; + + target_list = gtk_drag_dest_get_target_list (widget); + context = gtk_drag_begin_with_coordinates (widget, target_list, + GDK_ACTION_MOVE, + 1, (GdkEvent *) event, + -1, -1); + + pager->priv->dragging = TRUE; + pager->priv->prelight_dnd = TRUE; + _wnck_window_set_as_drag_icon (pager->priv->drag_window, + context, + GTK_WIDGET (pager)); + } + + wnck_pager_check_prelight (pager, x, y, pager->priv->prelight_dnd); + + return TRUE; +} + +static gboolean +wnck_pager_leave_notify (GtkWidget *widget, + GdkEventCrossing *event) +{ + WnckPager *pager; + + pager = WNCK_PAGER (widget); + + wnck_pager_check_prelight (pager, -1, -1, FALSE); + + return FALSE; +} + +static gboolean +wnck_pager_button_release (GtkWidget *widget, + GdkEventButton *event) +{ + WnckWorkspace *space; + WnckPager *pager; + int i; + int j; + int viewport_x; + int viewport_y; + + if (event->button != 1) + return FALSE; + + pager = WNCK_PAGER (widget); + + if (!pager->priv->dragging) + { + i = workspace_at_point (pager, + event->x, event->y, + &viewport_x, &viewport_y); + j = workspace_at_point (pager, + pager->priv->drag_start_x, + pager->priv->drag_start_y, + NULL, NULL); + + if (i == j && i >= 0 && + (space = wnck_screen_get_workspace (pager->priv->screen, i))) + { + int screen_width, screen_height; + + /* Don't switch the desktop if we're already there */ + if (space != wnck_screen_get_active_workspace (pager->priv->screen)) + wnck_workspace_activate (space, event->time); + + /* EWMH only lets us move the viewport for the active workspace, + * but we just go ahead and hackily assume that the activate + * just above takes effect prior to moving the viewport + */ + + /* Transform the pointer location to viewport origin, assuming + * that we want the nearest "regular" viewport containing the + * pointer. + */ + screen_width = wnck_screen_get_width (pager->priv->screen); + screen_height = wnck_screen_get_height (pager->priv->screen); + viewport_x = (viewport_x / screen_width) * screen_width; + viewport_y = (viewport_y / screen_height) * screen_height; + + if (wnck_workspace_get_viewport_x (space) != viewport_x || + wnck_workspace_get_viewport_y (space) != viewport_y) + wnck_screen_move_viewport (pager->priv->screen, viewport_x, viewport_y); + } + + wnck_pager_clear_drag (pager); + } + + return FALSE; +} + +static gboolean +wnck_pager_scroll_event (GtkWidget *widget, + GdkEventScroll *event) +{ + WnckPager *pager; + WnckWorkspace *space; + GdkScrollDirection absolute_direction; + int index; + int n_workspaces; + int n_columns; + int in_last_row; + gboolean wrap_workspaces; + gdouble smooth_x; + gdouble smooth_y; + + pager = WNCK_PAGER (widget); + + if (event->type != GDK_SCROLL) + return FALSE; + if (event->direction == GDK_SCROLL_SMOOTH) + return FALSE; + + absolute_direction = event->direction; + + space = wnck_screen_get_active_workspace (pager->priv->screen); + index = wnck_workspace_get_number (space); + + n_workspaces = wnck_screen_get_workspace_count (pager->priv->screen); + n_columns = n_workspaces / pager->priv->n_rows; + if (n_workspaces % pager->priv->n_rows != 0) + n_columns++; + in_last_row = n_workspaces % n_columns; + wrap_workspaces = pager->priv->wrap_on_scroll; + + if (gtk_widget_get_direction (GTK_WIDGET (pager)) == GTK_TEXT_DIR_RTL) + { + switch (event->direction) + { + case GDK_SCROLL_DOWN: + case GDK_SCROLL_UP: + break; + case GDK_SCROLL_RIGHT: + absolute_direction = GDK_SCROLL_LEFT; + break; + case GDK_SCROLL_LEFT: + absolute_direction = GDK_SCROLL_RIGHT; + break; + case GDK_SCROLL_SMOOTH: + gdk_event_get_scroll_deltas ((GdkEvent*)event, &smooth_x, &smooth_y); + if (smooth_x > 5) + absolute_direction = GDK_SCROLL_RIGHT; + else if (smooth_x < -5) + absolute_direction = GDK_SCROLL_LEFT; + break; + default: + break; + } + } + + switch (absolute_direction) + { + case GDK_SCROLL_DOWN: + if (index + n_columns < n_workspaces) + { + index += n_columns; + } + else if (wrap_workspaces && index == n_workspaces - 1) + { + index = 0; + } + else if ((index < n_workspaces - 1 && + index + in_last_row != n_workspaces - 1) || + (index == n_workspaces - 1 && + in_last_row != 0)) + { + index = (index % n_columns) + 1; + } + break; + + case GDK_SCROLL_RIGHT: + if (index < n_workspaces - 1) + { + index++; + } + else if (wrap_workspaces) + { + index = 0; + } + break; + + case GDK_SCROLL_UP: + if (index - n_columns >= 0) + { + index -= n_columns; + } + else if (index > 0) + { + index = ((pager->priv->n_rows - 1) * n_columns) + (index % n_columns) - 1; + } + else if (wrap_workspaces) + { + index = n_workspaces - 1; + } + + if (index >= n_workspaces) + { + index -= n_columns; + } + break; + + case GDK_SCROLL_LEFT: + if (index > 0) + { + index--; + } + else if (wrap_workspaces) + { + index = n_workspaces - 1; + } + break; + + case GDK_SCROLL_SMOOTH: + default: + g_assert_not_reached (); + break; + } + + space = wnck_screen_get_workspace (pager->priv->screen, index); + wnck_workspace_activate (space, event->time); + + return TRUE; +} + +static gboolean +wnck_pager_query_tooltip (GtkWidget *widget, + gint x, + gint y, + gboolean keyboard_tip, + GtkTooltip *tooltip) +{ + int i; + WnckPager *pager; + WnckScreen *screen; + WnckWorkspace *space; + char *name; + + pager = WNCK_PAGER (widget); + screen = pager->priv->screen; + + i = workspace_at_point (pager, x, y, NULL, NULL); + space = wnck_screen_get_workspace (screen, i); + if (!space) + return GTK_WIDGET_CLASS (wnck_pager_parent_class)->query_tooltip (widget, + x, y, + keyboard_tip, + tooltip); + + if (wnck_screen_get_active_workspace (screen) == space) + { + WnckWindow *window; + GdkRectangle workspace_rect; + + get_workspace_rect (pager, i, &workspace_rect); + + window = window_at_point (pager, space, &workspace_rect, x, y); + + if (window) + name = g_strdup_printf (_("Click to start dragging \"%s\""), + wnck_window_get_name (window)); + else + name = g_strdup_printf (_("Current workspace: \"%s\""), + wnck_workspace_get_name (space)); + } + else + { + name = g_strdup_printf (_("Click to switch to \"%s\""), + wnck_workspace_get_name (space)); + } + + gtk_tooltip_set_text (tooltip, name); + + g_free (name); + + return TRUE; +} + +/** + * wnck_pager_new: + * + * Creates a new #WnckPager. The #WnckPager will show the #WnckWorkspace of the + * #WnckScreen it is on. + * + * Return value: a newly created #WnckPager. + */ +GtkWidget* +wnck_pager_new (void) +{ + WnckPager *pager; + + pager = g_object_new (WNCK_TYPE_PAGER, NULL); + + return GTK_WIDGET (pager); +} + +static gboolean +wnck_pager_set_layout_hint (WnckPager *pager) +{ + int layout_rows; + int layout_cols; + + /* if we're not realized, we don't know about our screen yet */ + if (pager->priv->screen == NULL) + _wnck_pager_set_screen (pager); + /* can still happen if the pager was not added to a widget hierarchy */ + if (pager->priv->screen == NULL) + return FALSE; + + /* The visual representation of the pager doesn't + * correspond to the layout of the workspaces + * here. i.e. the user will not pay any attention + * to the n_rows setting on this pager. + */ + if (!pager->priv->show_all_workspaces) + return FALSE; + + if (pager->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + { + layout_rows = pager->priv->n_rows; + layout_cols = 0; + } + else + { + layout_rows = 0; + layout_cols = pager->priv->n_rows; + } + + pager->priv->layout_manager_token = + wnck_screen_try_set_workspace_layout (pager->priv->screen, + pager->priv->layout_manager_token, + layout_rows, + layout_cols); + + return (pager->priv->layout_manager_token != WNCK_NO_MANAGER_TOKEN); +} + +/** + * wnck_pager_set_orientation: + * @pager: a #WnckPager. + * @orientation: orientation to use for the layout of #WnckWorkspace on the + * #WnckScreen @pager is watching. + * + * Tries to change the orientation of the layout of #WnckWorkspace on the + * #WnckScreen @pager is watching. Since no more than one application should + * set this property of a #WnckScreen at a time, setting the layout is not + * guaranteed to work. + * + * If @orientation is %GTK_ORIENTATION_HORIZONTAL, the #WnckWorkspace will be + * laid out in rows, with the first #WnckWorkspace in the top left corner. + * + * If @orientation is %GTK_ORIENTATION_VERTICAL, the #WnckWorkspace will be + * laid out in columns, with the first #WnckWorkspace in the top left corner. + * + * For example, if the layout contains one row, but the orientation of the + * layout is vertical, the #WnckPager will display a column of #WnckWorkspace. + * + * Note that setting the orientation will have an effect on the geometry + * management: if @orientation is %GTK_ORIENTATION_HORIZONTAL, + * %GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT will be used as request mode; if + * @orientation is %GTK_ORIENTATION_VERTICAL, GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH + * will be used instead. + * + * If @pager has not been added to a widget hierarchy, the call will fail + * because @pager can't know the screen on which to modify the orientation. + * + * Return value: %TRUE if the layout of #WnckWorkspace has been successfully + * changed or did not need to be changed, %FALSE otherwise. + */ +gboolean +wnck_pager_set_orientation (WnckPager *pager, + GtkOrientation orientation) +{ + GtkOrientation old_orientation; + gboolean old_orientation_is_valid; + + g_return_val_if_fail (WNCK_IS_PAGER (pager), FALSE); + + if (pager->priv->orientation == orientation) + return TRUE; + + old_orientation = pager->priv->orientation; + old_orientation_is_valid = pager->priv->screen != NULL; + + pager->priv->orientation = orientation; + + if (wnck_pager_set_layout_hint (pager)) + { + gtk_widget_queue_resize (GTK_WIDGET (pager)); + return TRUE; + } + else + { + if (old_orientation_is_valid) + pager->priv->orientation = old_orientation; + return FALSE; + } +} + +/** + * wnck_pager_set_n_rows: + * @pager: a #WnckPager. + * @n_rows: the number of rows to use for the layout of #WnckWorkspace on the + * #WnckScreen @pager is watching. + * + * Tries to change the number of rows in the layout of #WnckWorkspace on the + * #WnckScreen @pager is watching. Since no more than one application should + * set this property of a #WnckScreen at a time, setting the layout is not + * guaranteed to work. + * + * If @pager has not been added to a widget hierarchy, the call will fail + * because @pager can't know the screen on which to modify the layout. + * + * Return value: %TRUE if the layout of #WnckWorkspace has been successfully + * changed or did not need to be changed, %FALSE otherwise. + */ +gboolean +wnck_pager_set_n_rows (WnckPager *pager, + int n_rows) +{ + int old_n_rows; + gboolean old_n_rows_is_valid; + + g_return_val_if_fail (WNCK_IS_PAGER (pager), FALSE); + g_return_val_if_fail (n_rows > 0, FALSE); + + if (pager->priv->n_rows == n_rows) + return TRUE; + + old_n_rows = pager->priv->n_rows; + old_n_rows_is_valid = pager->priv->screen != NULL; + + pager->priv->n_rows = n_rows; + + if (wnck_pager_set_layout_hint (pager)) + { + gtk_widget_queue_resize (GTK_WIDGET (pager)); + return TRUE; + } + else + { + if (old_n_rows_is_valid) + pager->priv->n_rows = old_n_rows; + return FALSE; + } +} + +/** + * wnck_pager_set_display_mode: + * @pager: a #WnckPager. + * @mode: a display mode. + * + * Sets the display mode for @pager to @mode. + */ +void +wnck_pager_set_display_mode (WnckPager *pager, + WnckPagerDisplayMode mode) +{ + g_return_if_fail (WNCK_IS_PAGER (pager)); + + if (pager->priv->display_mode == mode) + return; + + g_object_set (pager, "has-tooltip", mode != WNCK_PAGER_DISPLAY_NAME, NULL); + + pager->priv->display_mode = mode; + gtk_widget_queue_resize (GTK_WIDGET (pager)); +} + +/** + * wnck_pager_set_show_all: + * @pager: a #WnckPager. + * @show_all_workspaces: whether to display all #WnckWorkspace in @pager. + * + * Sets @pager to display all #WnckWorkspace or not, according to + * @show_all_workspaces. + */ +void +wnck_pager_set_show_all (WnckPager *pager, + gboolean show_all_workspaces) +{ + g_return_if_fail (WNCK_IS_PAGER (pager)); + + show_all_workspaces = (show_all_workspaces != 0); + + if (pager->priv->show_all_workspaces == show_all_workspaces) + return; + + pager->priv->show_all_workspaces = show_all_workspaces; + gtk_widget_queue_resize (GTK_WIDGET (pager)); +} + +/** + * wnck_pager_set_shadow_type: + * @pager: a #WnckPager. + * @shadow_type: a shadow type. + * + * Sets the shadow type for @pager to @shadow_type. The main use of this + * function is proper integration of #WnckPager in panels with non-system + * backgrounds. + * + * Since: 2.2 + */ +void +wnck_pager_set_shadow_type (WnckPager * pager, + GtkShadowType shadow_type) +{ + g_return_if_fail (WNCK_IS_PAGER (pager)); + + if (pager->priv->shadow_type == shadow_type) + return; + + pager->priv->shadow_type = shadow_type; + gtk_widget_queue_resize (GTK_WIDGET (pager)); +} + +/** + * wnck_pager_set_wrap_on_scroll: + * @pager: a #WnckPager. + * @wrap_on_scroll: a boolean. + * + * Sets the wrapping behavior of the @pager. Setting it to %TRUE will + * wrap arround to the start when scrolling over the end and vice + * versa. By default it is set to %FALSE. + * + * Since: 3.24.0 + */ +void +wnck_pager_set_wrap_on_scroll (WnckPager *pager, + gboolean wrap_on_scroll) +{ + g_return_if_fail (WNCK_IS_PAGER (pager)); + + pager->priv->wrap_on_scroll = wrap_on_scroll; +} + +/** + * wnck_pager_get_wrap_on_scroll: + * @pager: a #WnckPager. + * + * Return value: %TRUE if the @pager wraps workspaces on a scroll event that + * hits a border, %FALSE otherwise. + * + * Since: 3.24.0 + */ +gboolean +wnck_pager_get_wrap_on_scroll (WnckPager *pager) +{ + g_return_val_if_fail (WNCK_IS_PAGER (pager), FALSE); + + return pager->priv->wrap_on_scroll; +} + +static void +active_window_changed_callback (WnckScreen *screen, + WnckWindow *previous_window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + gtk_widget_queue_draw (GTK_WIDGET (pager)); +} + +static void +active_workspace_changed_callback (WnckScreen *screen, + WnckWorkspace *previous_workspace, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + gtk_widget_queue_draw (GTK_WIDGET (pager)); +} + +static void +window_stacking_changed_callback (WnckScreen *screen, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + gtk_widget_queue_draw (GTK_WIDGET (pager)); +} + +static void +window_opened_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + + wnck_pager_connect_window (pager, window); + wnck_pager_queue_draw_window (pager, window); +} + +static void +window_closed_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + + if (pager->priv->drag_window == window) + wnck_pager_clear_drag (pager); + + wnck_pager_queue_draw_window (pager, window); +} + +static void +workspace_created_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + g_signal_connect (space, "name_changed", + G_CALLBACK (workspace_name_changed_callback), pager); + gtk_widget_queue_resize (GTK_WIDGET (pager)); +} + +static void +workspace_destroyed_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + g_signal_handlers_disconnect_by_func (space, G_CALLBACK (workspace_name_changed_callback), pager); + gtk_widget_queue_resize (GTK_WIDGET (pager)); +} + +static void +application_opened_callback (WnckScreen *screen, + WnckApplication *app, + gpointer data) +{ + /* WnckPager *pager = WNCK_PAGER (data); */ +} + +static void +application_closed_callback (WnckScreen *screen, + WnckApplication *app, + gpointer data) +{ + /* WnckPager *pager = WNCK_PAGER (data); */ +} + +static void +window_name_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + wnck_pager_queue_draw_window (pager, window); +} + +static void +window_state_changed_callback (WnckWindow *window, + WnckWindowState changed, + WnckWindowState new, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + + /* if the changed state changes the visibility in the pager, we need to + * redraw the whole workspace. wnck_pager_queue_draw_window() might not be + * enough */ + if (!wnck_pager_window_state_is_relevant (changed)) + wnck_pager_queue_draw_workspace (pager, + wnck_pager_window_get_workspace (window, + FALSE)); + else + wnck_pager_queue_draw_window (pager, window); +} + +static void +window_workspace_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + gtk_widget_queue_draw (GTK_WIDGET (pager)); +} + +static void +window_icon_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + wnck_pager_queue_draw_window (pager, window); +} + +static void +window_geometry_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + + wnck_pager_queue_draw_window (pager, window); +} + +static void +background_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckPager *pager = WNCK_PAGER (data); + + if (pager->priv->bg_cache) + { + g_object_unref (G_OBJECT (pager->priv->bg_cache)); + pager->priv->bg_cache = NULL; + } + + gtk_widget_queue_draw (GTK_WIDGET (pager)); +} + +static void +workspace_name_changed_callback (WnckWorkspace *space, + gpointer data) +{ + gtk_widget_queue_resize (GTK_WIDGET (data)); +} + +static void +viewports_changed_callback (WnckWorkspace *space, + gpointer data) +{ + gtk_widget_queue_resize (GTK_WIDGET (data)); +} + +static void +wnck_pager_connect_screen (WnckPager *pager) +{ + int i; + guint *c; + GList *tmp; + WnckScreen *screen; + + g_return_if_fail (pager->priv->screen != NULL); + + screen = pager->priv->screen; + + for (tmp = wnck_screen_get_windows (screen); tmp; tmp = tmp->next) + { + wnck_pager_connect_window (pager, WNCK_WINDOW (tmp->data)); + } + + i = 0; + c = pager->priv->screen_connections; + + c[i] = g_signal_connect (G_OBJECT (screen), "active_window_changed", + G_CALLBACK (active_window_changed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "active_workspace_changed", + G_CALLBACK (active_workspace_changed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "window_stacking_changed", + G_CALLBACK (window_stacking_changed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "window_opened", + G_CALLBACK (window_opened_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "window_closed", + G_CALLBACK (window_closed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "workspace_created", + G_CALLBACK (workspace_created_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "workspace_destroyed", + G_CALLBACK (workspace_destroyed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "application_opened", + G_CALLBACK (application_opened_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "application_closed", + G_CALLBACK (application_closed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "background_changed", + G_CALLBACK (background_changed_callback), + pager); + ++i; + + c[i] = g_signal_connect (G_OBJECT (screen), "viewports_changed", + G_CALLBACK (viewports_changed_callback), + pager); + ++i; + + g_assert (i == N_SCREEN_CONNECTIONS); + + /* connect to name_changed on each workspace */ + for (i = 0; i < wnck_screen_get_workspace_count (pager->priv->screen); i++) + { + WnckWorkspace *space; + space = wnck_screen_get_workspace (pager->priv->screen, i); + g_signal_connect (space, "name_changed", + G_CALLBACK (workspace_name_changed_callback), pager); + } +} + +static void +wnck_pager_connect_window (WnckPager *pager, + WnckWindow *window) +{ + g_signal_connect (G_OBJECT (window), "name_changed", + G_CALLBACK (window_name_changed_callback), + pager); + g_signal_connect (G_OBJECT (window), "state_changed", + G_CALLBACK (window_state_changed_callback), + pager); + g_signal_connect (G_OBJECT (window), "workspace_changed", + G_CALLBACK (window_workspace_changed_callback), + pager); + g_signal_connect (G_OBJECT (window), "icon_changed", + G_CALLBACK (window_icon_changed_callback), + pager); + g_signal_connect (G_OBJECT (window), "geometry_changed", + G_CALLBACK (window_geometry_changed_callback), + pager); +} + +static void +wnck_pager_disconnect_screen (WnckPager *pager) +{ + int i; + GList *tmp; + + if (pager->priv->screen == NULL) + return; + + i = 0; + while (i < N_SCREEN_CONNECTIONS) + { + if (pager->priv->screen_connections[i] != 0) + g_signal_handler_disconnect (G_OBJECT (pager->priv->screen), + pager->priv->screen_connections[i]); + + pager->priv->screen_connections[i] = 0; + + ++i; + } + + for (i = 0; i < wnck_screen_get_workspace_count (pager->priv->screen); i++) + { + WnckWorkspace *space; + space = wnck_screen_get_workspace (pager->priv->screen, i); + g_signal_handlers_disconnect_by_func (space, G_CALLBACK (workspace_name_changed_callback), pager); + } + + for (tmp = wnck_screen_get_windows (pager->priv->screen); tmp; tmp = tmp->next) + { + wnck_pager_disconnect_window (pager, WNCK_WINDOW (tmp->data)); + } +} + +static void +wnck_pager_disconnect_window (WnckPager *pager, + WnckWindow *window) +{ + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + G_CALLBACK (window_name_changed_callback), + pager); + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + G_CALLBACK (window_state_changed_callback), + pager); + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + G_CALLBACK (window_workspace_changed_callback), + pager); + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + G_CALLBACK (window_icon_changed_callback), + pager); + g_signal_handlers_disconnect_by_func (G_OBJECT (window), + G_CALLBACK (window_geometry_changed_callback), + pager); +} + +static void +wnck_pager_clear_drag (WnckPager *pager) +{ + if (pager->priv->dragging) + wnck_pager_queue_draw_window (pager, pager->priv->drag_window); + + pager->priv->dragging = FALSE; + pager->priv->drag_window = NULL; + pager->priv->drag_start_x = -1; + pager->priv->drag_start_y = -1; +} + +static GdkPixbuf* +wnck_pager_get_background (WnckPager *pager, + int width, + int height) +{ + Pixmap p; + GdkPixbuf *pix = NULL; + + /* We have to be careful not to keep alternating between + * width/height values, otherwise this would get really slow. + */ + if (pager->priv->bg_cache && + gdk_pixbuf_get_width (pager->priv->bg_cache) == width && + gdk_pixbuf_get_height (pager->priv->bg_cache) == height) + return pager->priv->bg_cache; + + if (pager->priv->bg_cache) + { + g_object_unref (G_OBJECT (pager->priv->bg_cache)); + pager->priv->bg_cache = NULL; + } + + if (pager->priv->screen == NULL) + return NULL; + + /* FIXME this just globally disables the thumbnailing feature */ + return NULL; + +#define MIN_BG_SIZE 10 + + if (width < MIN_BG_SIZE || height < MIN_BG_SIZE) + return NULL; + + p = wnck_screen_get_background_pixmap (pager->priv->screen); + + if (p != None) + { + Screen *xscreen; + + xscreen = WNCK_SCREEN_XSCREEN (pager->priv->screen); + pix = _wnck_gdk_pixbuf_get_from_pixmap (xscreen, p); + } + + if (pix) + { + pager->priv->bg_cache = gdk_pixbuf_scale_simple (pix, + width, + height, + GDK_INTERP_BILINEAR); + + g_object_unref (G_OBJECT (pix)); + } + + return pager->priv->bg_cache; +} + +/* + *This will return aobj_pager whose parent is wnck's atk object -Gail Container + */ +static AtkObject * +wnck_pager_get_accessible (GtkWidget *widget) +{ + static gboolean first_time = TRUE; + + if (first_time) + { + AtkObjectFactory *factory; + AtkRegistry *registry; + GType derived_type; + GType derived_atk_type; + + /* + * Figure out whether accessibility is enabled by looking at the + * type of the accessible object which would be created for + * the parent type WnckPager. + */ + derived_type = g_type_parent (WNCK_TYPE_PAGER); + + registry = atk_get_default_registry (); + factory = atk_registry_get_factory (registry, + derived_type); + derived_atk_type = atk_object_factory_get_accessible_type (factory); + + if (g_type_is_a (derived_atk_type, GTK_TYPE_ACCESSIBLE)) + { + /* + * Specify what factory to use to create accessible + * objects + */ + atk_registry_set_factory_type (registry, + WNCK_TYPE_PAGER, + WNCK_TYPE_PAGER_ACCESSIBLE_FACTORY); + + atk_registry_set_factory_type (registry, + WNCK_TYPE_WORKSPACE, + WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY); + } + first_time = FALSE; + } + return GTK_WIDGET_CLASS (wnck_pager_parent_class)->get_accessible (widget); +} + +int +_wnck_pager_get_n_workspaces (WnckPager *pager) +{ + return wnck_screen_get_workspace_count (pager->priv->screen); +} + +const char* +_wnck_pager_get_workspace_name (WnckPager *pager, + int i) +{ + WnckWorkspace *space; + + space = wnck_screen_get_workspace (pager->priv->screen, i); + if (space) + return wnck_workspace_get_name (space); + else + return NULL; +} + +WnckWorkspace* +_wnck_pager_get_active_workspace (WnckPager *pager) +{ + return wnck_screen_get_active_workspace (pager->priv->screen); +} + +WnckWorkspace* +_wnck_pager_get_workspace (WnckPager *pager, + int i) +{ + return wnck_screen_get_workspace (pager->priv->screen, i); +} + +void +_wnck_pager_activate_workspace (WnckWorkspace *wspace, + guint32 timestamp) +{ + wnck_workspace_activate (wspace, timestamp); +} + +void +_wnck_pager_get_workspace_rect (WnckPager *pager, + int i, + GdkRectangle *rect) +{ + get_workspace_rect (pager, i, rect); +} diff --git a/libwnck/pager.h b/libwnck/pager.h new file mode 100644 index 0000000..5a43d05 --- /dev/null +++ b/libwnck/pager.h @@ -0,0 +1,103 @@ +/* pager object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003, 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_PAGER_H +#define WNCK_PAGER_H + +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_PAGER (wnck_pager_get_type ()) +#define WNCK_PAGER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_PAGER, WnckPager)) +#define WNCK_PAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_PAGER, WnckPagerClass)) +#define WNCK_IS_PAGER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_PAGER)) +#define WNCK_IS_PAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_PAGER)) +#define WNCK_PAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_PAGER, WnckPagerClass)) + +typedef struct _WnckPager WnckPager; +typedef struct _WnckPagerClass WnckPagerClass; +typedef struct _WnckPagerPrivate WnckPagerPrivate; + +/** + * WnckPager: + * + * The #WnckPager struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckPager +{ + GtkContainer parent_instance; + + WnckPagerPrivate *priv; +}; + +struct _WnckPagerClass +{ + GtkContainerClass parent_class; + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +/** + * WnckPagerDisplayMode: + * @WNCK_PAGER_DISPLAY_NAME: the #WnckPager will only display the names of the + * workspaces. + * @WNCK_PAGER_DISPLAY_CONTENT: the #WnckPager will display a representation + * for each window in the workspaces. + * + * Mode defining what a #WnckPager will display. + */ +typedef enum { + WNCK_PAGER_DISPLAY_NAME, + WNCK_PAGER_DISPLAY_CONTENT +} WnckPagerDisplayMode; + +GType wnck_pager_get_type (void) G_GNUC_CONST; + +GtkWidget* wnck_pager_new (void); + +gboolean wnck_pager_set_orientation (WnckPager *pager, + GtkOrientation orientation); +gboolean wnck_pager_set_n_rows (WnckPager *pager, + int n_rows); +void wnck_pager_set_display_mode (WnckPager *pager, + WnckPagerDisplayMode mode); +void wnck_pager_set_show_all (WnckPager *pager, + gboolean show_all_workspaces); +void wnck_pager_set_shadow_type (WnckPager *pager, + GtkShadowType shadow_type); +void wnck_pager_set_wrap_on_scroll (WnckPager *pager, + gboolean wrap_on_scroll); +gboolean wnck_pager_get_wrap_on_scroll (WnckPager *pager); + +G_END_DECLS + +#endif /* WNCK_PAGER_H */ diff --git a/libwnck/private.h b/libwnck/private.h new file mode 100644 index 0000000..1122f34 --- /dev/null +++ b/libwnck/private.h @@ -0,0 +1,154 @@ +/* Private stuff */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#ifndef WNCK_PRIVATE_H +#define WNCK_PRIVATE_H + +#include +#include "screen.h" +#include "window.h" +#include "workspace.h" +#include "application.h" +#include "xutils.h" +#include "pager.h" +#include "util.h" +#ifdef HAVE_STARTUP_NOTIFICATION +#include +#endif + +G_BEGIN_DECLS + +#define WNCK_ACTIVATE_TIMEOUT 1 + +WnckClientType _wnck_get_client_type (void); + +gsize _wnck_get_default_icon_size (void); +gsize _wnck_get_default_mini_icon_size (void); + +void _wnck_application_process_property_notify (WnckApplication *app, + XEvent *xevent); +void _wnck_window_process_property_notify (WnckWindow *window, + XEvent *xevent); + +void _wnck_screen_process_property_notify (WnckScreen *screen, + XEvent *xevent); +void _wnck_window_process_configure_notify (WnckWindow *window, + XEvent *xevent); +WnckWindow* _wnck_window_create (Window xwindow, + WnckScreen *screen, + gint sort_order); +void _wnck_window_destroy (WnckWindow *window); + +void _wnck_window_load_icons (WnckWindow *window); + +char* _wnck_window_get_name_for_display (WnckWindow *window, + gboolean use_icon_name, + gboolean use_state_decorations); +const char* _wnck_window_get_startup_id (WnckWindow *window); + +time_t _wnck_window_get_needs_attention_time (WnckWindow *window); +time_t _wnck_window_or_transient_get_needs_attention_time (WnckWindow *window); + +void _wnck_window_shutdown_all (void); + +WnckWorkspace* _wnck_workspace_create (int number, + WnckScreen *screen); +void _wnck_workspace_destroy (WnckWorkspace *space); + +void _wnck_window_set_application (WnckWindow *window, + WnckApplication *app); + +void _wnck_window_set_class_group (WnckWindow *window, + WnckClassGroup *class_group); + +/* this one is in pager.c since it needs code from there to draw the icon */ +void _wnck_window_set_as_drag_icon (WnckWindow *window, + GdkDragContext *context, + GtkWidget *drag_source); + +void _wnck_application_add_window (WnckApplication *app, + WnckWindow *window); +void _wnck_application_remove_window (WnckApplication *app, + WnckWindow *window); + +WnckApplication* _wnck_application_create (Window xwindow, + WnckScreen *screen); +void _wnck_application_destroy (WnckApplication *app); +void _wnck_application_load_icons (WnckApplication *app); +void _wnck_application_shutdown_all (void); + + +WnckClassGroup* _wnck_class_group_create (const char *res_class); +void _wnck_class_group_destroy (WnckClassGroup *class_group); +void _wnck_class_group_add_window (WnckClassGroup *class_group, + WnckWindow *window); +void _wnck_class_group_remove_window (WnckClassGroup *class_group, + WnckWindow *window); +void _wnck_class_group_shutdown_all (void); + +void _wnck_workspace_update_name (WnckWorkspace *workspace, + const char *name); +void _wnck_screen_change_workspace_name (WnckScreen *screen, + int number, + const char *name); + +void _wnck_screen_shutdown_all (void); + +gboolean _wnck_workspace_set_geometry (WnckWorkspace *space, int w, int h); +gboolean _wnck_workspace_set_viewport (WnckWorkspace *space, int x, int y); + +void _wnck_init (void); +Display *_wnck_get_default_display (void); + +#define WNCK_SCREEN_XSCREEN(screen) (_wnck_screen_get_xscreen (screen)) + +Screen *_wnck_screen_get_xscreen (WnckScreen *screen); +GdkScreen *_wnck_screen_get_gdk_screen (WnckScreen *screen); + +#ifdef HAVE_STARTUP_NOTIFICATION +SnDisplay* _wnck_screen_get_sn_display (WnckScreen *screen); +#endif + +WnckScreen* _wnck_screen_get_existing (int number); + +void _wnck_pager_activate_workspace (WnckWorkspace *wspace, + guint32 timestamp); +int _wnck_pager_get_n_workspaces (WnckPager *pager); +const char* _wnck_pager_get_workspace_name (WnckPager *pager, + int i); +WnckWorkspace* _wnck_pager_get_active_workspace (WnckPager *pager); +WnckWorkspace* _wnck_pager_get_workspace (WnckPager *pager, + int i); +void _wnck_pager_get_workspace_rect (WnckPager *pager, + int i, + GdkRectangle *rect); + +void _make_gtk_label_bold (GtkLabel *label); +void _make_gtk_label_normal (GtkLabel *label); + +void _wnck_selector_set_window_icon (GtkWidget *image, + WnckWindow *window); + +void _wnck_ensure_fallback_style (void); + +G_END_DECLS + +#endif /* WNCK_PRIVATE_H */ diff --git a/libwnck/screen.c b/libwnck/screen.c new file mode 100644 index 0000000..7798064 --- /dev/null +++ b/libwnck/screen.c @@ -0,0 +1,2741 @@ +/* screen object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Kim Woelders + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#undef WNCK_DISABLE_DEPRECATED + +#include + +#include +#include "screen.h" +#include "window.h" +#include "workspace.h" +#include "application.h" +#include "class-group.h" +#include "xutils.h" +#include "private.h" +#include +#include +#include +#include + +/** + * SECTION:screen + * @short_description: an object representing a screen. + * @see_also: #WnckWindow, #WnckWorkspace + * @stability: Unstable + * + * The #WnckScreen represents a physical screen. A screen may consist of + * multiple monitors which are merged to form a large screen area. The + * #WnckScreen is at the bottom of the libwnck stack of objects: #WnckWorkspace + * objects exist a #WnckScreen and #WnckWindow objects are displayed on a + * #WnckWorkspace. + * + * The #WnckScreen corresponds to the notion of + * GdkScreen in GDK. + * + * The #WnckScreen objects are always owned by libwnck and must not be + * referenced or unreferenced. + */ + +#define _NET_WM_ORIENTATION_HORZ 0 +#define _NET_WM_ORIENTATION_VERT 1 + +#define _NET_WM_TOPLEFT 0 +#define _NET_WM_TOPRIGHT 1 +#define _NET_WM_BOTTOMRIGHT 2 +#define _NET_WM_BOTTOMLEFT 3 + +static WnckScreen** screens = NULL; + +struct _WnckScreenPrivate +{ + int number; + Window xroot; + Screen *xscreen; + + int orig_event_mask; + + /* in map order */ + GList *mapped_windows; + /* in stacking order */ + GList *stacked_windows; + /* in 0-to-N order */ + GList *workspaces; + + /* previously_active_window is used in tandem with active_window to + * determine return status of wnck_window_is_most_recently_actived(). + * These are usually shared for all screens, although this is not guaranteed + * to be true. + */ + WnckWindow *active_window; + WnckWindow *previously_active_window; + + WnckWorkspace *active_workspace; + + /* Provides the sorting order number for the next window, to make + * sure windows remain sorted in the order they appear. + */ + gint window_order; + + Pixmap bg_pixmap; + + char *wm_name; + + guint update_handler; + +#ifdef HAVE_STARTUP_NOTIFICATION + SnDisplay *sn_display; +#endif + + guint showing_desktop : 1; + + guint vertical_workspaces : 1; + _WnckLayoutCorner starting_corner; + gint rows_of_workspaces; + gint columns_of_workspaces; + + /* if you add flags, be sure to set them + * when we create the screen so we get an initial update + */ + guint need_update_stack_list : 1; + guint need_update_workspace_list : 1; + guint need_update_viewport_settings : 1; + guint need_update_active_workspace : 1; + guint need_update_active_window : 1; + guint need_update_workspace_layout : 1; + guint need_update_workspace_names : 1; + guint need_update_bg_pixmap : 1; + guint need_update_showing_desktop : 1; + guint need_update_wm : 1; +}; + +G_DEFINE_TYPE (WnckScreen, wnck_screen, G_TYPE_OBJECT); +#define WNCK_SCREEN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_SCREEN, WnckScreenPrivate)) + +enum { + ACTIVE_WINDOW_CHANGED, + ACTIVE_WORKSPACE_CHANGED, + WINDOW_STACKING_CHANGED, + WINDOW_OPENED, + WINDOW_CLOSED, + WORKSPACE_CREATED, + WORKSPACE_DESTROYED, + APPLICATION_OPENED, + APPLICATION_CLOSED, + CLASS_GROUP_OPENED, + CLASS_GROUP_CLOSED, + BACKGROUND_CHANGED, + SHOWING_DESKTOP_CHANGED, + VIEWPORTS_CHANGED, + WM_CHANGED, + LAST_SIGNAL +}; + +static void wnck_screen_finalize (GObject *object); + +static void update_client_list (WnckScreen *screen); +static void update_workspace_list (WnckScreen *screen); +static void update_viewport_settings (WnckScreen *screen); +static void update_active_workspace (WnckScreen *screen); +static void update_active_window (WnckScreen *screen); +static void update_workspace_layout (WnckScreen *screen); +static void update_workspace_names (WnckScreen *screen); +static void update_showing_desktop (WnckScreen *screen); + +static void queue_update (WnckScreen *screen); +static void unqueue_update (WnckScreen *screen); +static void do_update_now (WnckScreen *screen); + +static void emit_active_window_changed (WnckScreen *screen); +static void emit_active_workspace_changed (WnckScreen *screen, + WnckWorkspace *previous_space); +static void emit_window_stacking_changed (WnckScreen *screen); +static void emit_window_opened (WnckScreen *screen, + WnckWindow *window); +static void emit_window_closed (WnckScreen *screen, + WnckWindow *window); +static void emit_workspace_created (WnckScreen *screen, + WnckWorkspace *space); +static void emit_workspace_destroyed (WnckScreen *screen, + WnckWorkspace *space); +static void emit_application_opened (WnckScreen *screen, + WnckApplication *app); +static void emit_application_closed (WnckScreen *screen, + WnckApplication *app); +static void emit_class_group_opened (WnckScreen *screen, + WnckClassGroup *class_group); +static void emit_class_group_closed (WnckScreen *screen, + WnckClassGroup *class_group); +static void emit_background_changed (WnckScreen *screen); +static void emit_showing_desktop_changed (WnckScreen *screen); +static void emit_viewports_changed (WnckScreen *screen); +static void emit_wm_changed (WnckScreen *screen); + +static guint signals[LAST_SIGNAL] = { 0 }; + +static void +wnck_screen_init (WnckScreen *screen) +{ + screen->priv = WNCK_SCREEN_GET_PRIVATE (screen); + + screen->priv->number = -1; + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_TOPLEFT; + screen->priv->rows_of_workspaces = 1; + screen->priv->columns_of_workspaces = -1; +} + +static void +wnck_screen_class_init (WnckScreenClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + _wnck_init (); + + g_type_class_add_private (klass, sizeof (WnckScreenPrivate)); + + object_class->finalize = wnck_screen_finalize; + + /** + * WnckScreen::active-window-changed: + * @screen: the #WnckScreen which emitted the signal. + * @previously_active_window: the previously active #WnckWindow before this + * change. + * + * Emitted when the active window on @screen has changed. + */ + signals[ACTIVE_WINDOW_CHANGED] = + g_signal_new ("active_window_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, active_window_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WINDOW); + + /** + * WnckScreen::active-workspace-changed: + * @screen: the #WnckScreen which emitted the signal. + * @previously_active_space: the previously active #WnckWorkspace before this + * change. + * + * Emitted when the active workspace on @screen has changed. + */ + signals[ACTIVE_WORKSPACE_CHANGED] = + g_signal_new ("active_workspace_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, active_workspace_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WORKSPACE); + + /** + * WnckScreen::window-stacking-changed: + * @screen: the #WnckScreen which emitted the signal. + * + * Emitted when the stacking order of #WnckWindow on @screen has changed. + */ + signals[WINDOW_STACKING_CHANGED] = + g_signal_new ("window_stacking_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, window_stacking_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckScreen::window-opened: + * @screen: the #WnckScreen which emitted the signal. + * @window: the opened #WnckWindow. + * + * Emitted when a new #WnckWindow is opened on @screen. + */ + signals[WINDOW_OPENED] = + g_signal_new ("window_opened", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, window_opened), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WINDOW); + + /** + * WnckScreen::window-closed: + * @screen: the #WnckScreen which emitted the signal. + * @window: the closed #WnckWindow. + * + * Emitted when a #WnckWindow is closed on @screen. + */ + signals[WINDOW_CLOSED] = + g_signal_new ("window_closed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, window_closed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WINDOW); + + /** + * WnckScreen::workspace-created: + * @screen: the #WnckScreen which emitted the signal. + * @space: the workspace that has been created. + * + * Emitted when a #WnckWorkspace is created on @screen. + */ + signals[WORKSPACE_CREATED] = + g_signal_new ("workspace_created", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, workspace_created), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WORKSPACE); + + /** + * WnckScreen::workspace-destroyed: + * @screen: the #WnckScreen which emitted the signal. + * @space: the workspace that has been destroyed. + * + * Emitted when a #WnckWorkspace is destroyed on @screen. + */ + signals[WORKSPACE_DESTROYED] = + g_signal_new ("workspace_destroyed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, workspace_destroyed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_WORKSPACE); + + /** + * WnckScreen::application-opened: + * @screen: the #WnckScreen which emitted the signal. + * @app: the opened #WnckApplication. + * + * Emitted when a new #WnckApplication is opened on @screen. + */ + signals[APPLICATION_OPENED] = + g_signal_new ("application_opened", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, application_opened), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_APPLICATION); + + /** + * WnckScreen::application-closed: + * @screen: the #WnckScreen which emitted the signal. + * @app: the closed #WnckApplication. + * + * Emitted when a #WnckApplication is closed on @screen. + */ + signals[APPLICATION_CLOSED] = + g_signal_new ("application_closed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, application_closed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_APPLICATION); + + /** + * WnckScreen::class-group-opened: + * @screen: the #WnckScreen which emitted the signal. + * @class_group: the opened #WnckClassGroup. + * + * Emitted when a new #WnckClassGroup is opened on @screen. + * + * Since: 2.20 + */ + signals[CLASS_GROUP_OPENED] = + g_signal_new ("class_group_opened", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, class_group_opened), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_CLASS_GROUP); + + /** + * WnckScreen::class-group-closed: + * @screen: the #WnckScreen which emitted the signal. + * @class_group: the closed #WnckClassGroup. + * + * Emitted when a #WnckClassGroup is closed on @screen. + * + * Since: 2.20 + */ + signals[CLASS_GROUP_CLOSED] = + g_signal_new ("class_group_closed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, class_group_closed), + NULL, NULL, NULL, + G_TYPE_NONE, 1, WNCK_TYPE_CLASS_GROUP); + + /** + * WnckScreen::background-changed: + * @screen: the #WnckScreen which emitted the signal. + * + * Emitted when the background on the root window of @screen has changed. + */ + signals[BACKGROUND_CHANGED] = + g_signal_new ("background_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, background_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckScreen::showing-desktop-changed: + * @screen: the #WnckScreen which emitted the signal. + * + * Emitted when "showing the desktop" mode of @screen is toggled. + * + * Since: 2.20 + */ + signals[SHOWING_DESKTOP_CHANGED] = + g_signal_new ("showing_desktop_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, showing_desktop_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckScreen::viewports-changed: + * @screen: the #WnckScreen which emitted the signal. + * + * Emitted when a viewport position has changed in a #WnckWorkspace of + * @screen or when a #WnckWorkspace of @screen gets or loses its viewport. + * + * Since: 2.20 + */ + signals[VIEWPORTS_CHANGED] = + g_signal_new ("viewports_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, viewports_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckScreen::window-manager-changed: + * @screen: the #WnckScreen which emitted the signal. + * + * Emitted when the window manager on @screen has changed. + * + * Since: 2.20 + */ + signals[WM_CHANGED] = + g_signal_new ("window_manager_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckScreenClass, window_manager_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); +} + +static void +wnck_screen_finalize (GObject *object) +{ + WnckScreen *screen; + GList *tmp; + gpointer weak_pointer; + + screen = WNCK_SCREEN (object); + + _wnck_select_input (screen->priv->xscreen, + screen->priv->xroot, + screen->priv->orig_event_mask, + FALSE); + + unqueue_update (screen); + + for (tmp = screen->priv->stacked_windows; tmp; tmp = tmp->next) + { + screen->priv->mapped_windows = g_list_remove (screen->priv->mapped_windows, + tmp->data); + _wnck_window_destroy (WNCK_WINDOW (tmp->data)); + } + + for (tmp = screen->priv->mapped_windows; tmp; tmp = tmp->next) + _wnck_window_destroy (WNCK_WINDOW (tmp->data)); + + for (tmp = screen->priv->workspaces; tmp; tmp = tmp->next) + g_object_unref (tmp->data); + + g_list_free (screen->priv->mapped_windows); + screen->priv->mapped_windows = NULL; + g_list_free (screen->priv->stacked_windows); + screen->priv->stacked_windows = NULL; + + g_list_free (screen->priv->workspaces); + screen->priv->workspaces = NULL; + + weak_pointer = &screen->priv->active_window; + if (screen->priv->active_window != NULL) + g_object_remove_weak_pointer (G_OBJECT (screen->priv->active_window), + weak_pointer); + screen->priv->active_window = NULL; + + weak_pointer = &screen->priv->previously_active_window; + if (screen->priv->previously_active_window != NULL) + g_object_remove_weak_pointer (G_OBJECT (screen->priv->previously_active_window), + weak_pointer); + screen->priv->previously_active_window = NULL; + + g_free (screen->priv->wm_name); + screen->priv->wm_name = NULL; + + screens[screen->priv->number] = NULL; + +#ifdef HAVE_STARTUP_NOTIFICATION + sn_display_unref (screen->priv->sn_display); + screen->priv->sn_display = NULL; +#endif + + G_OBJECT_CLASS (wnck_screen_parent_class)->finalize (object); +} + +#ifdef HAVE_STARTUP_NOTIFICATION +static void +sn_error_trap_push (SnDisplay *display, + Display *xdisplay) +{ + _wnck_error_trap_push (xdisplay); +} + +static void +sn_error_trap_pop (SnDisplay *display, + Display *xdisplay) +{ + _wnck_error_trap_pop (xdisplay); +} +#endif /* HAVE_STARTUP_NOTIFICATION */ + +static void +wnck_screen_construct (Display *display, + WnckScreen *screen, + int number) +{ + /* Create the initial state of the screen. */ + screen->priv->xroot = RootWindow (display, number); + screen->priv->xscreen = ScreenOfDisplay (display, number); + screen->priv->number = number; + +#ifdef HAVE_STARTUP_NOTIFICATION + screen->priv->sn_display = sn_display_new (display, + sn_error_trap_push, + sn_error_trap_pop); +#endif + + screen->priv->bg_pixmap = None; + + screen->priv->orig_event_mask = _wnck_select_input (screen->priv->xscreen, + screen->priv->xroot, + PropertyChangeMask, + TRUE); + + screen->priv->need_update_workspace_list = TRUE; + screen->priv->need_update_stack_list = TRUE; + screen->priv->need_update_viewport_settings = TRUE; + screen->priv->need_update_active_workspace = TRUE; + screen->priv->need_update_active_window = TRUE; + screen->priv->need_update_workspace_layout = TRUE; + screen->priv->need_update_workspace_names = TRUE; + screen->priv->need_update_bg_pixmap = TRUE; + screen->priv->need_update_showing_desktop = TRUE; + screen->priv->need_update_wm = TRUE; + + queue_update (screen); +} + +/** + * wnck_screen_get: + * @index: screen number, starting from 0. + * + * Gets the #WnckScreen for a given screen on the default display. + * + * Return value: (transfer none): the #WnckScreen for screen @index, or %NULL + * if no such screen exists. The returned #WnckScreen is owned by libwnck and + * must not be referenced or unreferenced. + **/ +WnckScreen* +wnck_screen_get (int index) +{ + Display *display; + + display = _wnck_get_default_display (); + + g_return_val_if_fail (display != NULL, NULL); + + if (index >= ScreenCount (display)) + return NULL; + + if (screens == NULL) + { + screens = g_new0 (WnckScreen*, ScreenCount (display)); + _wnck_event_filter_init (); + } + + if (screens[index] == NULL) + { + screens[index] = g_object_new (WNCK_TYPE_SCREEN, NULL); + + wnck_screen_construct (display, screens[index], index); + } + + return screens[index]; +} + +WnckScreen* +_wnck_screen_get_existing (int number) +{ + Display *display; + + display = _wnck_get_default_display (); + + g_return_val_if_fail (display != NULL, NULL); + g_return_val_if_fail (number < ScreenCount (display), NULL); + + if (screens != NULL) + return screens[number]; + else + return NULL; +} + +/** + * wnck_screen_get_default: + * + * Gets the default #WnckScreen on the default display. + * + * Return value: (transfer none) (nullable): the default #WnckScreen. The returned + * #WnckScreen is owned by libwnck and must not be referenced or unreferenced. This + * can return %NULL if not on X11. + **/ +WnckScreen* +wnck_screen_get_default (void) +{ + int default_screen; + Display *default_display = _wnck_get_default_display (); + + if (default_display == NULL) + return NULL; + + default_screen = DefaultScreen (default_display); + + return wnck_screen_get (default_screen); +} + +/** + * wnck_screen_get_for_root: + * @root_window_id: an X window ID. + * + * Gets the #WnckScreen for the root window at @root_window_id, or + * %NULL if no #WnckScreen exists for this root window. + * + * This function does not work if wnck_screen_get() was not called for the + * sought #WnckScreen before, and returns %NULL. + * + * Return value: (transfer none): the #WnckScreen for the root window at + * @root_window_id, or %NULL. The returned #WnckScreen is owned by libwnck and + * must not be referenced or unreferenced. + **/ +WnckScreen* +wnck_screen_get_for_root (gulong root_window_id) +{ + int i; + Display *display; + + if (screens == NULL) + return NULL; + + i = 0; + display = _wnck_get_default_display (); + + while (i < ScreenCount (display)) + { + if (screens[i] != NULL && screens[i]->priv->xroot == root_window_id) + return screens[i]; + + ++i; + } + + return NULL; +} + +/** + * wnck_screen_get_number: + * @screen: a #WnckScreen. + * + * Gets the index of @screen on the display to which it belongs. The first + * #WnckScreen has an index of 0. + * + * Return value: the index of @space on @screen, or -1 on errors. + * + * Since: 2.20 + **/ +int +wnck_screen_get_number (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), -1); + + return screen->priv->number; +} + +/** + * wnck_screen_get_workspaces: + * @screen: a #WnckScreen. + * + * Gets the list of #WnckWorkspace on @screen. The list is ordered: the + * first element in the list is the first #WnckWorkspace, etc.. + * + * Return value: (element-type WnckWorkspace) (transfer none): the list of + * #WnckWorkspace on @screen. The list should not be modified nor freed, as it + * is owned by @screen. + * + * Since: 2.20 + **/ +GList* +wnck_screen_get_workspaces (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->workspaces; +} + +/** + * wnck_screen_get_workspace: + * @screen: a #WnckScreen. + * @workspace: a workspace index, starting from 0. + * + * Gets the #WnckWorkspace numbered @workspace on @screen. + * + * Return value: (transfer none): the #WnckWorkspace numbered @workspace on + * @screen, or %NULL if no such workspace exists. The returned #WnckWorkspace + * is owned by libwnck and must not be referenced or unreferenced. + **/ +WnckWorkspace* +wnck_screen_get_workspace (WnckScreen *screen, + int workspace) +{ + GList *list; + + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + /* We trust this function with property-provided numbers, it + * must reliably return NULL on bad data + */ + list = g_list_nth (screen->priv->workspaces, workspace); + + if (list == NULL) + return NULL; + + return WNCK_WORKSPACE (list->data); +} + +/** + * wnck_screen_get_active_workspace: + * @screen: a #WnckScreen. + * + * Gets the active #WnckWorkspace on @screen. May return %NULL sometimes, + * if libwnck is in a weird state due to the asynchronous nature of the + * interaction with the window manager. + * + * Return value: (transfer none): the active #WnckWorkspace on @screen, or + * %NULL. The returned #WnckWorkspace is owned by libwnck and must not be + * referenced or unreferenced. + **/ +WnckWorkspace* +wnck_screen_get_active_workspace (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->active_workspace; +} + +/** + * wnck_screen_get_active_window: + * @screen: a #WnckScreen. + * + * Gets the active #WnckWindow on @screen. May return %NULL sometimes, since + * not all window managers guarantee that a window is always active. + * + * Return value: (transfer none): the active #WnckWindow on @screen, or %NULL. + * The returned #WnckWindow is owned by libwnck and must not be referenced or + * unreferenced. + **/ +WnckWindow* +wnck_screen_get_active_window (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->active_window; +} + +/** + * wnck_screen_get_previously_active_window: + * @screen: a #WnckScreen. + * + * Gets the previously active #WnckWindow on @screen. May return %NULL + * sometimes, since not all window managers guarantee that a window is always + * active. + * + * Return value: (transfer none): the previously active #WnckWindow on @screen, + * or %NULL. The returned #WnckWindow is owned by libwnck and must not be + * referenced or unreferenced. + * + * Since: 2.8 + **/ +WnckWindow* +wnck_screen_get_previously_active_window (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->previously_active_window; +} + +/** + * wnck_screen_get_windows: + * @screen: a #WnckScreen. + * + * Gets the list of #WnckWindow on @screen. The list is not in a defined + * order, but should be "stable" (windows should not be reordered in it). + * However, the stability of the list is established by the window manager, so + * don't blame libwnck if it breaks down. + * + * Return value: (element-type WnckWindow) (transfer none): the list of + * #WnckWindow on @screen, or %NULL if there is no window on @screen. The list + * should not be modified nor freed, as it is owned by @screen. + **/ +GList* +wnck_screen_get_windows (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->mapped_windows; +} + +/** + * wnck_screen_get_windows_stacked: + * @screen: a #WnckScreen. + * + * Gets the list of #WnckWindow on @screen in bottom-to-top order. + * + * Return value: (element-type WnckWindow) (transfer none): the list of + * #WnckWindow in stacking order on @screen, or %NULL if there is no window on + * @screen. The list should not be modified nor freed, as it is owned by + * @screen. + **/ +GList* +wnck_screen_get_windows_stacked (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->stacked_windows; +} + +/** + * _wnck_screen_get_gdk_screen: + * @screen: a #WnckScreen. + * + * Gets the GdkScreenGdkScreenpriv->xscreen); + gdkdisplay = _wnck_gdk_display_lookup_from_display (display); + if (!gdkdisplay) + return NULL; + + if (screen->priv->number != 0) + return NULL; + + return gdk_display_get_default_screen (gdkdisplay); +} + +/** + * wnck_screen_force_update: + * @screen: a #WnckScreen. + * + * Synchronously and immediately updates the list of #WnckWindow on @screen. + * This bypasses the standard update mechanism, where the list of #WnckWindow + * is updated in the idle loop. + * + * This is usually a bad idea for both performance and correctness reasons (to + * get things right, you need to write model-view code that tracks changes, not + * get a static list of open windows). However, this function can be useful for + * small applications that just do something and then exit. + **/ +void +wnck_screen_force_update (WnckScreen *screen) +{ + g_return_if_fail (WNCK_IS_SCREEN (screen)); + + do_update_now (screen); +} + +/** + * wnck_screen_get_workspace_count: + * @screen: a #WnckScreen. + * + * Gets the number of #WnckWorkspace on @screen. + * + * Return value: the number of #WnckWorkspace on @screen. + **/ +int +wnck_screen_get_workspace_count (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), 0); + + return g_list_length (screen->priv->workspaces); +} + +/** + * wnck_screen_change_workspace_count: + * @screen: a #WnckScreen. + * @count: the number of #WnckWorkspace to request. + * + * Asks the window manager to change the number of #WnckWorkspace on @screen. + * + * Since: 2.2 + **/ +void +wnck_screen_change_workspace_count (WnckScreen *screen, + int count) +{ + Display *display; + XEvent xev; + + g_return_if_fail (WNCK_IS_SCREEN (screen)); + g_return_if_fail (count >= 1); + + display = DisplayOfScreen (screen->priv->xscreen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.window = screen->priv->xroot; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.message_type = _wnck_atom_get ("_NET_NUMBER_OF_DESKTOPS"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = count; + + _wnck_error_trap_push (display); + XSendEvent (display, + screen->priv->xroot, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_screen_process_property_notify (WnckScreen *screen, + XEvent *xevent) +{ + /* most frequently-changed properties first */ + if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_ACTIVE_WINDOW")) + { + screen->priv->need_update_active_window = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_CURRENT_DESKTOP")) + { + screen->priv->need_update_active_workspace = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_CLIENT_LIST_STACKING") || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_CLIENT_LIST")) + { + screen->priv->need_update_stack_list = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_DESKTOP_VIEWPORT")) + { + screen->priv->need_update_viewport_settings = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_DESKTOP_GEOMETRY")) + { + screen->priv->need_update_viewport_settings = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_NUMBER_OF_DESKTOPS")) + { + screen->priv->need_update_workspace_list = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_DESKTOP_LAYOUT")) + { + screen->priv->need_update_workspace_layout = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_DESKTOP_NAMES")) + { + screen->priv->need_update_workspace_names = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_XROOTPMAP_ID")) + { + screen->priv->need_update_bg_pixmap = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_SHOWING_DESKTOP")) + { + screen->priv->need_update_showing_desktop = TRUE; + queue_update (screen); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_SUPPORTING_WM_CHECK")) + { + screen->priv->need_update_wm = TRUE; + queue_update (screen); + } +} + +/** + * wnck_screen_calc_workspace_layout: + * @screen: a #WnckScreen. + * @num_workspaces: the number of #WnckWorkspace on @screen, or -1 to let + * wnck_screen_calc_workspace_layout() find this number. + * @space_index: the index of a #WnckWorkspace. + * @layout: return location for the layout of #WnckWorkspace with additional + * information. + * + * Calculates the layout of #WnckWorkspace, with additional information like + * the row and column of the #WnckWorkspace with index @space_index. + * + * Since: 2.12 + * Deprecated:2.20: + */ +/* TODO: when we make this private, remove num_workspaces since we can get it + * from screen! */ +void +wnck_screen_calc_workspace_layout (WnckScreen *screen, + int num_workspaces, + int space_index, + WnckWorkspaceLayout *layout) +{ + int rows, cols; + int grid_area; + int *grid; + int i, r, c; + int current_row, current_col; + + g_return_if_fail (WNCK_IS_SCREEN (screen)); + g_return_if_fail (layout != NULL); + + if (num_workspaces < 0) + num_workspaces = wnck_screen_get_workspace_count (screen); + + rows = screen->priv->rows_of_workspaces; + cols = screen->priv->columns_of_workspaces; + + if (rows <= 0 && cols <= 0) + cols = num_workspaces; + + if (rows <= 0) + rows = num_workspaces / cols + ((num_workspaces % cols) > 0 ? 1 : 0); + if (cols <= 0) + cols = num_workspaces / rows + ((num_workspaces % rows) > 0 ? 1 : 0); + + /* paranoia */ + if (rows < 1) + rows = 1; + if (cols < 1) + cols = 1; + + g_assert (rows != 0 && cols != 0); + + grid_area = rows * cols; + + grid = g_new (int, grid_area); + + current_row = -1; + current_col = -1; + i = 0; + + switch (screen->priv->starting_corner) + { + case WNCK_LAYOUT_CORNER_TOPLEFT: + if (screen->priv->vertical_workspaces) + { + c = 0; + while (c < cols) + { + r = 0; + while (r < rows) + { + grid[r*cols+c] = i; + ++i; + ++r; + } + ++c; + } + } + else + { + r = 0; + while (r < rows) + { + c = 0; + while (c < cols) + { + grid[r*cols+c] = i; + ++i; + ++c; + } + ++r; + } + } + break; + case WNCK_LAYOUT_CORNER_TOPRIGHT: + if (screen->priv->vertical_workspaces) + { + c = cols - 1; + while (c >= 0) + { + r = 0; + while (r < rows) + { + grid[r*cols+c] = i; + ++i; + ++r; + } + --c; + } + } + else + { + r = 0; + while (r < rows) + { + c = cols - 1; + while (c >= 0) + { + grid[r*cols+c] = i; + ++i; + --c; + } + ++r; + } + } + break; + case WNCK_LAYOUT_CORNER_BOTTOMLEFT: + if (screen->priv->vertical_workspaces) + { + c = 0; + while (c < cols) + { + r = rows - 1; + while (r >= 0) + { + grid[r*cols+c] = i; + ++i; + --r; + } + ++c; + } + } + else + { + r = rows - 1; + while (r >= 0) + { + c = 0; + while (c < cols) + { + grid[r*cols+c] = i; + ++i; + ++c; + } + --r; + } + } + break; + case WNCK_LAYOUT_CORNER_BOTTOMRIGHT: + if (screen->priv->vertical_workspaces) + { + c = cols - 1; + while (c >= 0) + { + r = rows - 1; + while (r >= 0) + { + grid[r*cols+c] = i; + ++i; + --r; + } + --c; + } + } + else + { + r = rows - 1; + while (r >= 0) + { + c = cols - 1; + while (c >= 0) + { + grid[r*cols+c] = i; + ++i; + --c; + } + --r; + } + } + break; + default: + break; + } + + current_row = 0; + current_col = 0; + r = 0; + while (r < rows) + { + c = 0; + while (c < cols) + { + if (grid[r*cols+c] == space_index) + { + current_row = r; + current_col = c; + } + else if (grid[r*cols+c] >= num_workspaces) + { + /* flag nonexistent spaces with -1 */ + grid[r*cols+c] = -1; + } + ++c; + } + ++r; + } + layout->rows = rows; + layout->cols = cols; + layout->grid = grid; + layout->grid_area = grid_area; + layout->current_row = current_row; + layout->current_col = current_col; +} + +/** + * wnck_screen_free_workspace_layout: + * @layout: a #WnckWorkspaceLayout. + * + * Frees the content of @layout. This does not free @layout itself, so you + * might want to free @layout yourself after calling this. + * + * Since: 2.12 + * Deprecated:2.20: + */ +void +wnck_screen_free_workspace_layout (WnckWorkspaceLayout *layout) +{ + g_return_if_fail (layout != NULL); + + g_free (layout->grid); +} + +static void +set_active_window (WnckScreen *screen, + WnckWindow *window) +{ + gpointer weak_pointer; + + weak_pointer = &screen->priv->active_window; + + /* we need the weak pointer since the active window might be shared between + * two screens, and so the value for one screen might become invalid when + * the window is destroyed on another screen */ + if (screen->priv->active_window != NULL) + g_object_remove_weak_pointer (G_OBJECT (screen->priv->active_window), + weak_pointer); + + screen->priv->active_window = window; + if (screen->priv->active_window != NULL) + g_object_add_weak_pointer (G_OBJECT (screen->priv->active_window), + weak_pointer); +} + +static void +set_previously_active_window (WnckScreen *screen, + WnckWindow *window) +{ + gpointer weak_pointer; + + weak_pointer = &screen->priv->previously_active_window; + + /* we need the weak pointer since the active window might be shared between + * two screens, and so the value for one screen might become invalid when + * the window is destroyed on another screen */ + if (screen->priv->previously_active_window != NULL) + g_object_remove_weak_pointer (G_OBJECT (screen->priv->previously_active_window), + weak_pointer); + + screen->priv->previously_active_window = window; + if (screen->priv->previously_active_window != NULL) + g_object_add_weak_pointer (G_OBJECT (screen->priv->previously_active_window), + weak_pointer); +} + +static gboolean +lists_equal (GList *a, + GList *b) +{ + GList *a_iter; + GList *b_iter; + + a_iter = a; + b_iter = b; + + while (a_iter && b_iter) + { + if (a_iter->data != b_iter->data) + return FALSE; + + a_iter = a_iter->next; + b_iter = b_iter->next; + } + + if (a_iter || b_iter) + return FALSE; + + return TRUE; +} + +static int +wincmp (const void *a, + const void *b) +{ + const Window *aw = a; + const Window *bw = b; + + if (*aw < *bw) + return -1; + else if (*aw > *bw) + return 1; + else + return 0; +} + +static gboolean +arrays_contain_same_windows (Window *a, + int a_len, + Window *b, + int b_len) +{ + Window *a_tmp; + Window *b_tmp; + gboolean result; + + if (a_len != b_len) + return FALSE; + + if (a_len == 0) + return TRUE; /* both are empty */ + + a_tmp = g_new (Window, a_len); + b_tmp = g_new (Window, b_len); + + memcpy (a_tmp, a, a_len * sizeof (Window)); + memcpy (b_tmp, b, b_len * sizeof (Window)); + + qsort (a_tmp, a_len, sizeof (Window), wincmp); + qsort (b_tmp, b_len, sizeof (Window), wincmp); + + result = memcmp (a_tmp, b_tmp, sizeof (Window) * a_len) == 0; + + g_free (a_tmp); + g_free (b_tmp); + + return result; +} + +static void +update_client_list (WnckScreen *screen) +{ + /* stacking order */ + Window *stack; + int stack_length; + /* mapping order */ + Window *mapping; + int mapping_length; + GList *new_stack_list; + GList *new_list; + GList *created; + GList *closed; + GList *created_apps, *closed_apps; + GList *created_class_groups, *closed_class_groups; + GList *tmp; + int i; + GHashTable *new_hash; + static int reentrancy_guard = 0; + gboolean active_changed; + gboolean stack_changed; + gboolean list_changed; + + g_return_if_fail (reentrancy_guard == 0); + + if (!screen->priv->need_update_stack_list) + return; + + ++reentrancy_guard; + + screen->priv->need_update_stack_list = FALSE; + + stack = NULL; + stack_length = 0; + _wnck_get_window_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_CLIENT_LIST_STACKING"), + &stack, + &stack_length); + + mapping = NULL; + mapping_length = 0; + _wnck_get_window_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_CLIENT_LIST"), + &mapping, + &mapping_length); + + if (!arrays_contain_same_windows (stack, stack_length, + mapping, mapping_length)) + { + /* Don't update until we're in a consistent state */ + g_free (stack); + g_free (mapping); + --reentrancy_guard; + return; + } + + created = NULL; + closed = NULL; + created_apps = NULL; + closed_apps = NULL; + created_class_groups = NULL; + closed_class_groups = NULL; + + new_hash = g_hash_table_new (NULL, NULL); + + new_list = NULL; + i = 0; + while (i < mapping_length) + { + WnckWindow *window; + + window = wnck_window_get (mapping[i]); + + if (window == NULL) + { + Window leader; + WnckApplication *app; + const char *res_class; + WnckClassGroup *class_group; + + window = _wnck_window_create (mapping[i], + screen, + screen->priv->window_order++); + + created = g_list_prepend (created, window); + + /* Application */ + + leader = wnck_window_get_group_leader (window); + + app = wnck_application_get (leader); + if (app == NULL) + { + app = _wnck_application_create (leader, screen); + created_apps = g_list_prepend (created_apps, app); + } + + _wnck_application_add_window (app, window); + + /* Class group */ + + res_class = wnck_window_get_class_group_name (window); + + class_group = wnck_class_group_get (res_class); + if (class_group == NULL) + { + class_group = _wnck_class_group_create (res_class); + created_class_groups = g_list_prepend (created_class_groups, class_group); + } + + _wnck_class_group_add_window (class_group, window); + } + + new_list = g_list_prepend (new_list, window); + + g_hash_table_insert (new_hash, window, window); + + ++i; + } + + /* put list back in order */ + new_list = g_list_reverse (new_list); + + /* Now we need to find windows in the old list that aren't + * in this new list + */ + tmp = screen->priv->mapped_windows; + while (tmp != NULL) + { + WnckWindow *window = tmp->data; + + if (g_hash_table_lookup (new_hash, window) == NULL) + { + WnckApplication *app; + WnckClassGroup *class_group; + + closed = g_list_prepend (closed, window); + + /* Remove from the app */ + + app = wnck_window_get_application (window); + _wnck_application_remove_window (app, window); + + if (wnck_application_get_windows (app) == NULL) + closed_apps = g_list_prepend (closed_apps, app); + + /* Remove from the class group */ + + class_group = wnck_window_get_class_group (window); + _wnck_class_group_remove_window (class_group, window); + + if (wnck_class_group_get_windows (class_group) == NULL) + closed_class_groups = g_list_prepend (closed_class_groups, class_group); + } + + tmp = tmp->next; + } + + g_hash_table_destroy (new_hash); + + /* Now get the mapping in list form */ + new_stack_list = NULL; + i = 0; + while (i < stack_length) + { + WnckWindow *window; + + window = wnck_window_get (stack[i]); + + g_assert (window != NULL); + + new_stack_list = g_list_prepend (new_stack_list, window); + + ++i; + } + + g_free (stack); + g_free (mapping); + + /* put list back in order */ + new_stack_list = g_list_reverse (new_stack_list); + + /* Now new_stack_list becomes screen->priv->stack_windows, new_list + * becomes screen->priv->mapped_windows, and we emit the opened/closed + * signals as appropriate + */ + + stack_changed = !lists_equal (screen->priv->stacked_windows, new_stack_list); + list_changed = !lists_equal (screen->priv->mapped_windows, new_list); + + if (!(stack_changed || list_changed)) + { + g_assert (created == NULL); + g_assert (closed == NULL); + g_assert (created_apps == NULL); + g_assert (closed_apps == NULL); + g_assert (created_class_groups == NULL); + g_assert (closed_class_groups == NULL); + g_list_free (new_stack_list); + g_list_free (new_list); + --reentrancy_guard; + return; + } + + g_list_free (screen->priv->mapped_windows); + g_list_free (screen->priv->stacked_windows); + screen->priv->mapped_windows = new_list; + screen->priv->stacked_windows = new_stack_list; + + /* Here we could get reentrancy if someone ran the main loop in + * signal callbacks; though that would be a bit pathological, so we + * don't handle it, but we do warn about it using reentrancy_guard + */ + + /* Sequence is: class_group_opened, application_opened, window_opened, + * window_closed, application_closed, class_group_closed. We have to do all + * window list changes BEFORE doing any other signals, so that any observers + * have valid state for the window structure before they take further action + */ + for (tmp = created_class_groups; tmp; tmp = tmp->next) + emit_class_group_opened (screen, WNCK_CLASS_GROUP (tmp->data)); + + for (tmp = created_apps; tmp; tmp = tmp->next) + emit_application_opened (screen, WNCK_APPLICATION (tmp->data)); + + for (tmp = created; tmp; tmp = tmp->next) + emit_window_opened (screen, WNCK_WINDOW (tmp->data)); + + active_changed = FALSE; + for (tmp = closed; tmp; tmp = tmp->next) + { + WnckWindow *window; + + window = WNCK_WINDOW (tmp->data); + + if (window == screen->priv->previously_active_window) + { + set_previously_active_window (screen, NULL); + } + + if (window == screen->priv->active_window) + { + set_previously_active_window (screen, screen->priv->active_window); + set_active_window (screen, NULL); + active_changed = TRUE; + } + + emit_window_closed (screen, window); + } + + for (tmp = closed_apps; tmp; tmp = tmp->next) + emit_application_closed (screen, WNCK_APPLICATION (tmp->data)); + + for (tmp = closed_class_groups; tmp; tmp = tmp->next) + emit_class_group_closed (screen, WNCK_CLASS_GROUP (tmp->data)); + + if (stack_changed) + emit_window_stacking_changed (screen); + + if (active_changed) + emit_active_window_changed (screen); + + /* Now free the closed windows */ + for (tmp = closed; tmp; tmp = tmp->next) + _wnck_window_destroy (WNCK_WINDOW (tmp->data)); + + /* Free the closed apps */ + for (tmp = closed_apps; tmp; tmp = tmp->next) + _wnck_application_destroy (WNCK_APPLICATION (tmp->data)); + + /* Free the closed class groups */ + for (tmp = closed_class_groups; tmp; tmp = tmp->next) + _wnck_class_group_destroy (WNCK_CLASS_GROUP (tmp->data)); + + g_list_free (closed); + g_list_free (created); + g_list_free (closed_apps); + g_list_free (created_apps); + g_list_free (closed_class_groups); + g_list_free (created_class_groups); + + --reentrancy_guard; + + /* Maybe the active window is now valid if it wasn't */ + if (screen->priv->active_window == NULL) + { + screen->priv->need_update_active_window = TRUE; + queue_update (screen); + } +} + +static void +update_workspace_list (WnckScreen *screen) +{ + int n_spaces; + int old_n_spaces; + GList *tmp; + GList *deleted; + GList *created; + static int reentrancy_guard = 0; + + g_return_if_fail (reentrancy_guard == 0); + + if (!screen->priv->need_update_workspace_list) + return; + + screen->priv->need_update_workspace_list = FALSE; + + ++reentrancy_guard; + + n_spaces = 0; + if (!_wnck_get_cardinal (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_NUMBER_OF_DESKTOPS"), + &n_spaces)) + n_spaces = 1; + + if (n_spaces <= 0) + { + g_warning ("Someone set a weird number of desktops in _NET_NUMBER_OF_DESKTOPS, assuming the value is 1\n"); + n_spaces = 1; + } + + old_n_spaces = g_list_length (screen->priv->workspaces); + + deleted = NULL; + created = NULL; + + if (old_n_spaces == n_spaces) + { + --reentrancy_guard; + return; /* nothing changed */ + } + else if (old_n_spaces > n_spaces) + { + /* Need to delete some workspaces */ + deleted = g_list_nth (screen->priv->workspaces, n_spaces); + if (deleted->prev) + deleted->prev->next = NULL; + deleted->prev = NULL; + + if (deleted == screen->priv->workspaces) + screen->priv->workspaces = NULL; + } + else + { + int i; + + g_assert (old_n_spaces < n_spaces); + + /* Need to create some workspaces */ + i = 0; + while (i < (n_spaces - old_n_spaces)) + { + WnckWorkspace *space; + + space = _wnck_workspace_create (old_n_spaces + i, screen); + + screen->priv->workspaces = g_list_append (screen->priv->workspaces, + space); + + created = g_list_prepend (created, space); + + ++i; + } + + created = g_list_reverse (created); + } + + /* Here we allow reentrancy, going into the main + * loop could confuse us + */ + tmp = deleted; + while (tmp != NULL) + { + WnckWorkspace *space = WNCK_WORKSPACE (tmp->data); + + if (space == screen->priv->active_workspace) + { + screen->priv->active_workspace = NULL; + emit_active_workspace_changed (screen, space); + } + + emit_workspace_destroyed (screen, space); + + tmp = tmp->next; + } + + tmp = created; + while (tmp != NULL) + { + emit_workspace_created (screen, WNCK_WORKSPACE (tmp->data)); + + tmp = tmp->next; + } + g_list_free (created); + + tmp = deleted; + while (tmp != NULL) + { + g_object_unref (tmp->data); + + tmp = tmp->next; + } + g_list_free (deleted); + + /* Active workspace property may now be interpretable, + * if it was a number larger than the active count previously + */ + if (screen->priv->active_workspace == NULL) + { + screen->priv->need_update_active_workspace = TRUE; + queue_update (screen); + } + + --reentrancy_guard; +} + +static void +update_viewport_settings (WnckScreen *screen) +{ + int i, n_spaces; + WnckWorkspace *space; + gulong *p_coord; + int n_coord; + gboolean do_update; + int space_width, space_height; + gboolean got_viewport_prop; + + if (!screen->priv->need_update_viewport_settings) + return; + + screen->priv->need_update_viewport_settings = FALSE; + + do_update = FALSE; + + n_spaces = wnck_screen_get_workspace_count (screen); + + /* If no property, use the screen's size */ + space_width = wnck_screen_get_width (screen); + space_height = wnck_screen_get_height (screen); + + p_coord = NULL; + n_coord = 0; + if (_wnck_get_cardinal_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_DESKTOP_GEOMETRY"), + &p_coord, &n_coord) && + p_coord != NULL) + { + if (n_coord == 2) + { + space_width = p_coord[0]; + space_height = p_coord[1]; + + if (space_width < wnck_screen_get_width (screen)) + space_width = wnck_screen_get_width (screen); + + if (space_height < wnck_screen_get_height (screen)) + space_height = wnck_screen_get_height (screen); + } + + g_free (p_coord); + } + + for (i = 0; i < n_spaces; i++) + { + space = wnck_screen_get_workspace (screen, i); + g_assert (space != NULL); + + if (_wnck_workspace_set_geometry (space, space_width, space_height)) + do_update = TRUE; + } + + got_viewport_prop = FALSE; + + p_coord = NULL; + n_coord = 0; + if (_wnck_get_cardinal_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_DESKTOP_VIEWPORT"), + &p_coord, &n_coord) && + p_coord != NULL) + { + if (n_coord == 2 * n_spaces) + { + int screen_width, screen_height; + + got_viewport_prop = TRUE; + + screen_width = wnck_screen_get_width (screen); + screen_height = wnck_screen_get_height (screen); + + for (i = 0; i < n_spaces; i++) + { + int x = 2 * i; + int y = 2 * i + 1; + + space = wnck_screen_get_workspace (screen, i); + g_assert (space != NULL); + + /* p_coord[x] is unsigned, and thus >= 0 */ + if ((int) p_coord[x] > space_width - screen_width) + p_coord[x] = space_width - screen_width; + + /* p_coord[y] is unsigned, and thus >= 0 */ + if ((int) p_coord[y] > space_height - screen_height) + p_coord[y] = space_height - screen_height; + + if (_wnck_workspace_set_viewport (space, + p_coord[x], p_coord[y])) + do_update = TRUE; + } + } + + g_free (p_coord); + } + + if (!got_viewport_prop) + { + for (i = 0; i < n_spaces; i++) + { + space = wnck_screen_get_workspace (screen, i); + g_assert (space != NULL); + + if (_wnck_workspace_set_viewport (space, 0, 0)) + do_update = TRUE; + } + } + + if (do_update) + emit_viewports_changed (screen); +} + +static void +update_active_workspace (WnckScreen *screen) +{ + int number; + WnckWorkspace *previous_space; + WnckWorkspace *space; + + if (!screen->priv->need_update_active_workspace) + return; + + screen->priv->need_update_active_workspace = FALSE; + + number = 0; + if (!_wnck_get_cardinal (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_CURRENT_DESKTOP"), + &number)) + number = -1; + + space = wnck_screen_get_workspace (screen, number); + + if (space == screen->priv->active_workspace) + return; + + previous_space = screen->priv->active_workspace; + screen->priv->active_workspace = space; + + emit_active_workspace_changed (screen, previous_space); +} + +static void +update_active_window (WnckScreen *screen) +{ + WnckWindow *window; + Window xwindow; + + if (!screen->priv->need_update_active_window) + return; + + screen->priv->need_update_active_window = FALSE; + + xwindow = None; + _wnck_get_window (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_ACTIVE_WINDOW"), + &xwindow); + + window = wnck_window_get (xwindow); + + if (window == screen->priv->active_window) + return; + + set_previously_active_window (screen, screen->priv->active_window); + set_active_window (screen, window); + + emit_active_window_changed (screen); +} + +static void +update_workspace_layout (WnckScreen *screen) +{ + gulong *list; + int n_items; + + if (!screen->priv->need_update_workspace_layout) + return; + + screen->priv->need_update_workspace_layout = FALSE; + + list = NULL; + n_items = 0; + if (_wnck_get_cardinal_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_DESKTOP_LAYOUT"), + &list, + &n_items)) + { + if (n_items == 3 || n_items == 4) + { + int cols, rows; + + switch (list[0]) + { + case _NET_WM_ORIENTATION_HORZ: + screen->priv->vertical_workspaces = FALSE; + break; + case _NET_WM_ORIENTATION_VERT: + screen->priv->vertical_workspaces = TRUE; + break; + default: + g_warning ("Someone set a weird orientation in _NET_DESKTOP_LAYOUT\n"); + break; + } + + cols = list[1]; + rows = list[2]; + + if (rows <= 0 && cols <= 0) + { + g_warning ("Columns = %d rows = %d in _NET_DESKTOP_LAYOUT makes no sense\n", rows, cols); + } + else + { + int num_workspaces; + + num_workspaces = wnck_screen_get_workspace_count (screen); + + if (rows > 0) + screen->priv->rows_of_workspaces = rows; + else + screen->priv->rows_of_workspaces = + num_workspaces / cols + + ((num_workspaces % cols) > 0 ? 1 : 0); + + if (cols > 0) + screen->priv->columns_of_workspaces = cols; + else + screen->priv->columns_of_workspaces = + num_workspaces / rows + + ((num_workspaces % rows) > 0 ? 1 : 0); + } + if (n_items == 4) + { + switch (list[3]) + { + case _NET_WM_TOPLEFT: + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_TOPLEFT; + break; + case _NET_WM_TOPRIGHT: + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_TOPRIGHT; + break; + case _NET_WM_BOTTOMRIGHT: + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_BOTTOMRIGHT; + break; + case _NET_WM_BOTTOMLEFT: + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_BOTTOMLEFT; + break; + default: + g_warning ("Someone set a weird starting corner in _NET_DESKTOP_LAYOUT\n"); + break; + } + } + else + screen->priv->starting_corner = WNCK_LAYOUT_CORNER_TOPLEFT; + } + else + { + g_warning ("Someone set _NET_DESKTOP_LAYOUT to %d integers instead of 4 (3 is accepted for backwards compat)\n", n_items); + } + g_free (list); + } +} + +static void +update_workspace_names (WnckScreen *screen) +{ + char **names; + int i; + GList *tmp; + GList *copy; + + if (!screen->priv->need_update_workspace_names) + return; + + screen->priv->need_update_workspace_names = FALSE; + + names = _wnck_get_utf8_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_DESKTOP_NAMES")); + + copy = g_list_copy (screen->priv->workspaces); + + i = 0; + tmp = copy; + while (tmp != NULL) + { + if (names && names[i]) + { + _wnck_workspace_update_name (tmp->data, names[i]); + ++i; + } + else + _wnck_workspace_update_name (tmp->data, NULL); + + tmp = tmp->next; + } + + g_strfreev (names); + + g_list_free (copy); +} + +static void +update_bg_pixmap (WnckScreen *screen) +{ + Pixmap p; + + if (!screen->priv->need_update_bg_pixmap) + return; + + screen->priv->need_update_bg_pixmap = FALSE; + + p = None; + _wnck_get_pixmap (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_XROOTPMAP_ID"), + &p); + /* may have failed, so p may still be None */ + + screen->priv->bg_pixmap = p; + + emit_background_changed (screen); +} + +static void +update_showing_desktop (WnckScreen *screen) +{ + int showing_desktop; + + if (!screen->priv->need_update_showing_desktop) + return; + + screen->priv->need_update_showing_desktop = FALSE; + + showing_desktop = FALSE; + _wnck_get_cardinal (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_SHOWING_DESKTOP"), + &showing_desktop); + + screen->priv->showing_desktop = showing_desktop != 0; + + emit_showing_desktop_changed (screen); +} + +static void +update_wm (WnckScreen *screen) +{ + Window wm_window; + + if (!screen->priv->need_update_wm) + return; + + screen->priv->need_update_wm = FALSE; + + wm_window = None; + _wnck_get_window (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_SUPPORTING_WM_CHECK"), + &wm_window); + + g_free (screen->priv->wm_name); + + if (wm_window != None) + screen->priv->wm_name = _wnck_get_utf8_property (screen->priv->xscreen, + wm_window, + _wnck_atom_get ("_NET_WM_NAME")); + else + screen->priv->wm_name = NULL; + + emit_wm_changed (screen); +} + +static void +do_update_now (WnckScreen *screen) +{ + if (screen->priv->update_handler) + { + g_source_remove (screen->priv->update_handler); + screen->priv->update_handler = 0; + } + + /* if number of workspaces changes, we have to + * update the per-workspace information as well + * in case the WM changed the per-workspace info + * first and number of spaces second. + */ + if (screen->priv->need_update_workspace_list) + { + screen->priv->need_update_viewport_settings = TRUE; + screen->priv->need_update_workspace_names = TRUE; + } + + /* First get our big-picture state in order */ + update_workspace_list (screen); + update_client_list (screen); + + /* Then note any smaller-scale changes */ + update_active_workspace (screen); + update_viewport_settings (screen); + update_active_window (screen); + update_workspace_layout (screen); + update_workspace_names (screen); + update_showing_desktop (screen); + update_wm (screen); + + update_bg_pixmap (screen); +} + +static gboolean +update_idle (gpointer data) +{ + WnckScreen *screen; + + screen = data; + + screen->priv->update_handler = 0; + + do_update_now (screen); + + return FALSE; +} + +static void +queue_update (WnckScreen *screen) +{ + if (screen->priv->update_handler != 0) + return; + + screen->priv->update_handler = g_idle_add (update_idle, screen); +} + +static void +unqueue_update (WnckScreen *screen) +{ + if (screen->priv->update_handler != 0) + { + g_source_remove (screen->priv->update_handler); + screen->priv->update_handler = 0; + } +} + +static void +emit_active_window_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[ACTIVE_WINDOW_CHANGED], + 0, screen->priv->previously_active_window); +} + +static void +emit_active_workspace_changed (WnckScreen *screen, + WnckWorkspace *previous_space) +{ + g_signal_emit (G_OBJECT (screen), + signals[ACTIVE_WORKSPACE_CHANGED], + 0, previous_space); +} + +static void +emit_window_stacking_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[WINDOW_STACKING_CHANGED], + 0); +} + +static void +emit_window_opened (WnckScreen *screen, + WnckWindow *window) +{ + g_signal_emit (G_OBJECT (screen), + signals[WINDOW_OPENED], + 0, window); +} + +static void +emit_window_closed (WnckScreen *screen, + WnckWindow *window) +{ + g_signal_emit (G_OBJECT (screen), + signals[WINDOW_CLOSED], + 0, window); +} + +static void +emit_workspace_created (WnckScreen *screen, + WnckWorkspace *space) +{ + g_signal_emit (G_OBJECT (screen), + signals[WORKSPACE_CREATED], + 0, space); +} + +static void +emit_workspace_destroyed (WnckScreen *screen, + WnckWorkspace *space) +{ + g_signal_emit (G_OBJECT (screen), + signals[WORKSPACE_DESTROYED], + 0, space); +} + +static void +emit_application_opened (WnckScreen *screen, + WnckApplication *app) +{ + g_signal_emit (G_OBJECT (screen), + signals[APPLICATION_OPENED], + 0, app); +} + +static void +emit_application_closed (WnckScreen *screen, + WnckApplication *app) +{ + g_signal_emit (G_OBJECT (screen), + signals[APPLICATION_CLOSED], + 0, app); +} + +static void +emit_class_group_opened (WnckScreen *screen, + WnckClassGroup *class_group) +{ + g_signal_emit (G_OBJECT (screen), + signals[CLASS_GROUP_OPENED], + 0, class_group); +} + +static void +emit_class_group_closed (WnckScreen *screen, + WnckClassGroup *class_group) +{ + g_signal_emit (G_OBJECT (screen), + signals[CLASS_GROUP_CLOSED], + 0, class_group); +} + +static void +emit_background_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[BACKGROUND_CHANGED], + 0); +} + +static void +emit_showing_desktop_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[SHOWING_DESKTOP_CHANGED], + 0); +} + +static void +emit_viewports_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[VIEWPORTS_CHANGED], + 0); +} + +static void +emit_wm_changed (WnckScreen *screen) +{ + g_signal_emit (G_OBJECT (screen), + signals[WM_CHANGED], + 0); +} + +/** + * wnck_screen_get_window_manager_name: + * @screen: a #WnckScreen. + * + * Gets the name of the window manager. + * + * Return value: the name of the window manager, or %NULL if the window manager + * does not comply with the EWMH + * specification. + * + * Since: 2.20 + */ +const char * +wnck_screen_get_window_manager_name (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->wm_name; +} + +/** + * wnck_screen_net_wm_supports: + * @screen: a #WnckScreen. + * @atom: a property atom. + * + * Gets whether the window manager for @screen supports a certain hint from + * the Extended + * Window Manager Hints specification (EWMH). + * + * When using this function, keep in mind that the window manager can change + * over time; so you should not use this function in a way that impacts + * persistent application state. A common bug is that your application can + * start up before the window manager does when the user logs in, and before + * the window manager starts wnck_screen_net_wm_supports() will return %FALSE + * for every property. + * + * See also gdk_x11_screen_supports_net_wm_hint() in GDK. + * + * Return value: %TRUE if the window manager for @screen supports the @atom + * hint, %FALSE otherwise. + */ +gboolean +wnck_screen_net_wm_supports (WnckScreen *screen, + const char *atom) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), FALSE); + + return gdk_x11_screen_supports_net_wm_hint (_wnck_screen_get_gdk_screen (screen), + gdk_atom_intern (atom, FALSE)); +} + +/** + * wnck_screen_get_background_pixmap: + * @screen: a #WnckScreen. + * + * Gets the X window ID of the background pixmap of @screen. + * + * Returns: the X window ID of the background pixmap of @screen. + */ +gulong +wnck_screen_get_background_pixmap (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), None); + + return screen->priv->bg_pixmap; +} + +/** + * wnck_screen_get_width: + * @screen: a #WnckScreen. + * + * Gets the width of @screen. + * + * Returns: the width of @screen. + */ +int +wnck_screen_get_width (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), 0); + + return WidthOfScreen (screen->priv->xscreen); +} + +/** + * wnck_screen_get_height: + * @screen: a #WnckScreen. + * + * Gets the height of @screen. + * + * Returns: the height of @screen. + */ +int +wnck_screen_get_height (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), 0); + + return HeightOfScreen (screen->priv->xscreen); +} + +Screen * +_wnck_screen_get_xscreen (WnckScreen *screen) +{ + return screen->priv->xscreen; +} + +/** + * wnck_screen_get_workspace_layout: + * @screen: a #WnckScreen. + * @orientation: return location for the orientation used in the #WnckWorkspace + * layout. See wnck_pager_set_orientation() for more information. + * @rows: return location for the number of rows in the #WnckWorkspace layout. + * @columns: return location for the number of columns in the #WnckWorkspace + * layout. + * @starting_corner: return location for the starting corner in the + * #WnckWorkspace layout (i.e. the corner containing the first #WnckWorkspace). + * + * Gets the layout of #WnckWorkspace on @screen. + */ +/* TODO: when we are sure about this API, add this function, + * WnckLayoutOrientation, WnckLayoutCorner and a "layout-changed" signal. But + * to make it really better, use a WnckScreenLayout struct. We might also want + * to wait for deprecation of WnckWorkspaceLayout. */ +void +_wnck_screen_get_workspace_layout (WnckScreen *screen, + _WnckLayoutOrientation *orientation, + int *rows, + int *columns, + _WnckLayoutCorner *starting_corner) +{ + g_return_if_fail (WNCK_IS_SCREEN (screen)); + + if (orientation) + *orientation = screen->priv->vertical_workspaces ? + WNCK_LAYOUT_ORIENTATION_VERTICAL : + WNCK_LAYOUT_ORIENTATION_HORIZONTAL; + + if (rows) + *rows = screen->priv->rows_of_workspaces; + + if (columns) + *columns = screen->priv->columns_of_workspaces; + + if (starting_corner) + *starting_corner = screen->priv->starting_corner; +} + +/** + * wnck_screen_try_set_workspace_layout: + * @screen: a #WnckScreen. + * @current_token: a token. Use 0 if you do not called + * wnck_screen_try_set_workspace_layout() before, or if you did not keep the + * old token. + * @rows: the number of rows to use for the #WnckWorkspace layout. + * @columns: the number of columns to use for the #WnckWorkspace layout. + * + * Tries to modify the layout of #WnckWorkspace on @screen. To do this, tries + * to acquire ownership of the layout. If the current process is the owner of + * the layout, @current_token is used to determine if the caller is the owner + * (there might be more than one part of the same process trying to set the + * layout). Since no more than one application should set this property of + * @screen at a time, setting the layout is not guaranteed to work. + * + * If @rows is 0, the actual number of rows will be determined based on + * @columns and the number of #WnckWorkspace. If @columns is 0, the actual + * number of columns will be determined based on @rows and the number of + * #WnckWorkspace. @rows and @columns must not be 0 at the same time. + * + * You have to release the ownership of the layout with + * wnck_screen_release_workspace_layout() when you do not need it anymore. + * + * Return value: a token to use for future calls to + * wnck_screen_try_set_workspace_layout() and to + * wnck_screen_release_workspace_layout(), or 0 if the layout could not be set. + */ +int +wnck_screen_try_set_workspace_layout (WnckScreen *screen, + int current_token, + int rows, + int columns) +{ + int retval; + + g_return_val_if_fail (WNCK_IS_SCREEN (screen), + WNCK_NO_MANAGER_TOKEN); + g_return_val_if_fail (rows != 0 || columns != 0, + WNCK_NO_MANAGER_TOKEN); + + retval = _wnck_try_desktop_layout_manager (screen->priv->xscreen, current_token); + + if (retval != WNCK_NO_MANAGER_TOKEN) + { + _wnck_set_desktop_layout (screen->priv->xscreen, rows, columns); + } + + return retval; +} + +/** + * wnck_screen_release_workspace_layout: + * @screen: a #WnckScreen. + * @current_token: the token obtained through + * wnck_screen_try_set_workspace_layout(). + * + * Releases the ownership of the layout of #WnckWorkspace on @screen. + * @current_token is used to verify that the caller is the owner of the layout. + * If the verification fails, nothing happens. + */ +void +wnck_screen_release_workspace_layout (WnckScreen *screen, + int current_token) +{ + g_return_if_fail (WNCK_IS_SCREEN (screen)); + + _wnck_release_desktop_layout_manager (screen->priv->xscreen, + current_token); + +} + +/** + * wnck_screen_get_showing_desktop: + * @screen: a #WnckScreen. + * + * Gets whether @screen is in the "showing the desktop" mode. This mode is + * changed when a #WnckScreen::showing-desktop-changed signal gets emitted. + * + * Return value: %TRUE if @window is fullscreen, %FALSE otherwise. + * + * Since: 2.2 + **/ +gboolean +wnck_screen_get_showing_desktop (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), FALSE); + + return screen->priv->showing_desktop; +} + +/** + * wnck_screen_toggle_showing_desktop: + * @screen: a #WnckScreen. + * @show: whether to activate the "showing the desktop" mode on @screen. + * + * Asks the window manager to set the "showing the desktop" mode on @screen + * according to @show. + * + * Since: 2.2 + **/ +void +wnck_screen_toggle_showing_desktop (WnckScreen *screen, + gboolean show) +{ + g_return_if_fail (WNCK_IS_SCREEN (screen)); + + _wnck_toggle_showing_desktop (screen->priv->xscreen, + show); +} + + +/** + * wnck_screen_move_viewport: + * @screen: a #WnckScreen. + * @x: X offset in pixels of viewport. + * @y: Y offset in pixels of viewport. + * + * Asks the window manager to move the viewport of the current #WnckWorkspace + * on @screen. + * + * Since: 2.4 + */ +void +wnck_screen_move_viewport (WnckScreen *screen, + int x, + int y) +{ + g_return_if_fail (WNCK_IS_SCREEN (screen)); + g_return_if_fail (x >= 0); + g_return_if_fail (y >= 0); + + _wnck_change_viewport (screen->priv->xscreen, x, y); +} + +#ifdef HAVE_STARTUP_NOTIFICATION +SnDisplay* +_wnck_screen_get_sn_display (WnckScreen *screen) +{ + g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL); + + return screen->priv->sn_display; +} +#endif /* HAVE_STARTUP_NOTIFICATION */ + +void +_wnck_screen_change_workspace_name (WnckScreen *screen, + int number, + const char *name) +{ + int n_spaces; + char **names; + int i; + + n_spaces = wnck_screen_get_workspace_count (screen); + + names = g_new0 (char*, n_spaces + 1); + + i = 0; + while (i < n_spaces) + { + if (i == number) + names[i] = (char*) name; + else + { + WnckWorkspace *workspace; + workspace = wnck_screen_get_workspace (screen, i); + if (workspace) + names[i] = (char*) wnck_workspace_get_name (workspace); + else + names[i] = (char*) ""; /* maybe this should be a g_warning() */ + } + + ++i; + } + + _wnck_set_utf8_list (screen->priv->xscreen, + screen->priv->xroot, + _wnck_atom_get ("_NET_DESKTOP_NAMES"), + names); + + g_free (names); +} + +void +_wnck_screen_shutdown_all (void) +{ + int i; + Display *display; + + if (screens == NULL) + return; + + display = _wnck_get_default_display (); + + for (i = 0; i < ScreenCount (display); ++i) + { + if (screens[i] != NULL) { + g_object_unref (screens[i]); + screens[i] = NULL; + } + } + + g_free (screens); + screens = NULL; +} diff --git a/libwnck/screen.h b/libwnck/screen.h new file mode 100644 index 0000000..3140ea5 --- /dev/null +++ b/libwnck/screen.h @@ -0,0 +1,248 @@ +/* screen object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_SCREEN_H +#define WNCK_SCREEN_H + +#include + +G_BEGIN_DECLS + +/* forward decls */ +typedef struct _WnckApplication WnckApplication; +typedef struct _WnckClassGroup WnckClassGroup; +typedef struct _WnckWindow WnckWindow; +typedef struct _WnckWorkspace WnckWorkspace; + +/* Screen */ + +#define WNCK_TYPE_SCREEN (wnck_screen_get_type ()) +#define WNCK_SCREEN(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_SCREEN, WnckScreen)) +#define WNCK_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_SCREEN, WnckScreenClass)) +#define WNCK_IS_SCREEN(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_SCREEN)) +#define WNCK_IS_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_SCREEN)) +#define WNCK_SCREEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_SCREEN, WnckScreenClass)) + +typedef struct _WnckScreen WnckScreen; +typedef struct _WnckScreenClass WnckScreenClass; +typedef struct _WnckScreenPrivate WnckScreenPrivate; + +/** + * WnckScreen: + * + * The #WnckScreen struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckScreen +{ + GObject parent_instance; + + WnckScreenPrivate *priv; +}; + +struct _WnckScreenClass +{ + GObjectClass parent_class; + + /* focused window changed */ + void (* active_window_changed) (WnckScreen *screen, + WnckWindow *previous_window); + /* current workspace changed */ + void (* active_workspace_changed) (WnckScreen *screen, + WnckWorkspace *previous_workspace); + /* stacking order changed */ + void (* window_stacking_changed) (WnckScreen *screen); + /* window added */ + void (* window_opened) (WnckScreen *screen, + WnckWindow *window); + /* window removed */ + void (* window_closed) (WnckScreen *screen, + WnckWindow *window); + /* new workspace */ + void (* workspace_created) (WnckScreen *screen, + WnckWorkspace *space); + /* workspace gone */ + void (* workspace_destroyed) (WnckScreen *screen, + WnckWorkspace *space); + /* new app */ + void (* application_opened) (WnckScreen *screen, + WnckApplication *app); + /* app gone */ + void (* application_closed) (WnckScreen *screen, + WnckApplication *app); + + /* New background */ + void (* background_changed) (WnckScreen *screen); + + /* new class group */ + void (* class_group_opened) (WnckScreen *screen, + WnckClassGroup *class_group); + /* class group gone */ + void (* class_group_closed) (WnckScreen *screen, + WnckClassGroup *class_group); + /* Toggle showing desktop */ + void (* showing_desktop_changed) (WnckScreen *screen); + + /* Viewport stuff changed */ + void (* viewports_changed) (WnckScreen *screen); + + /* Window manager changed */ + void (* window_manager_changed) (WnckScreen *screen); + + /* Padding for future expansion */ + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); + void (* pad5) (void); + void (* pad6) (void); +}; + +#ifndef WNCK_DISABLE_DEPRECATED +typedef struct _WnckWorkspaceLayout WnckWorkspaceLayout; + +/** + * WnckWorkspaceLayout: + * @rows: number of rows in the layout grid. + * @cols: number of columns in the layout grid. + * @grid: array of size @grid_area containing the index (starting from 0) of + * the #WnckWorkspace for each position in the layout grid, or -1 if the + * position does not correspond to any #WnckWorkspace. + * @grid_area: size of the grid containing all #WnckWorkspace. This can be + * bigger than the number of #WnckWorkspace because the grid might not be + * filled. + * @current_row: row of the specific #WnckWorkspace, starting from 0. + * @current_col: column of the specific #WnckWorkspace, starting from 0. + * + * The #WnckWorkspaceLayout struct contains information about the layout of + * #WnckWorkspace on a #WnckScreen, and the exact position of a specific + * #WnckWorkspace. + * + * Since: 2.12 + * Deprecated:2.20: + */ +struct _WnckWorkspaceLayout +{ + int rows; + int cols; + int *grid; + int grid_area; + int current_row; + int current_col; +}; +#endif /* WNCK_DISABLE_DEPRECATED */ + +/** + * WnckLayoutOrientation: + * @WNCK_LAYOUT_ORIENTATION_HORIZONTAL: the #WnckWorkspace are laid out in + * rows, with the first #WnckWorkspace in the defined #WnckLayoutCorner. + * @WNCK_LAYOUT_ORIENTATION_VERTICAL: the #WnckWorkspace are laid out in + * columns, with the first #WnckWorkspace in the defined #WnckLayoutCorner. + * + * Type defining the orientation of the layout of #WnckWorkspace. See + * wnck_pager_set_orientation() for more information. + */ +typedef enum +{ + WNCK_LAYOUT_ORIENTATION_HORIZONTAL, + WNCK_LAYOUT_ORIENTATION_VERTICAL +} _WnckLayoutOrientation; + +/** + * WnckLayoutCorner: + * @WNCK_LAYOUT_CORNER_TOPLEFT: the first #WnckWorkspace is in the top left + * corner of the layout. + * @WNCK_LAYOUT_CORNER_TOPRIGHT: the first #WnckWorkspace is in the top right + * corner of the layout. + * @WNCK_LAYOUT_CORNER_BOTTOMRIGHT: the first #WnckWorkspace is in the bottom + * right corner of the layout. + * @WNCK_LAYOUT_CORNER_BOTTOMLEFT: the first #WnckWorkspace is in the bottom + * left corner of the layout. + * + * Type defining the starting corner of the layout of #WnckWorkspace, i.e. the + * corner containing the first #WnckWorkspace. + */ +typedef enum +{ + WNCK_LAYOUT_CORNER_TOPLEFT, + WNCK_LAYOUT_CORNER_TOPRIGHT, + WNCK_LAYOUT_CORNER_BOTTOMRIGHT, + WNCK_LAYOUT_CORNER_BOTTOMLEFT +} _WnckLayoutCorner; + +GType wnck_screen_get_type (void) G_GNUC_CONST; + +WnckScreen* wnck_screen_get_default (void); +WnckScreen* wnck_screen_get (int index); +WnckScreen* wnck_screen_get_for_root (gulong root_window_id); +int wnck_screen_get_number (WnckScreen *screen); +WnckWorkspace* wnck_screen_get_workspace (WnckScreen *screen, + int workspace); +WnckWorkspace* wnck_screen_get_active_workspace (WnckScreen *screen); +GList* wnck_screen_get_workspaces (WnckScreen *screen); +WnckWindow* wnck_screen_get_active_window (WnckScreen *screen); +WnckWindow* wnck_screen_get_previously_active_window (WnckScreen *screen); +GList* wnck_screen_get_windows (WnckScreen *screen); +GList* wnck_screen_get_windows_stacked (WnckScreen *screen); +void wnck_screen_force_update (WnckScreen *screen); +int wnck_screen_get_workspace_count (WnckScreen *screen); +void wnck_screen_change_workspace_count (WnckScreen *screen, + int count); +const char* wnck_screen_get_window_manager_name (WnckScreen *screen); +gboolean wnck_screen_net_wm_supports (WnckScreen *screen, + const char *atom); +gulong wnck_screen_get_background_pixmap (WnckScreen *screen); +int wnck_screen_get_width (WnckScreen *screen); +int wnck_screen_get_height (WnckScreen *screen); +gboolean wnck_screen_get_showing_desktop (WnckScreen *screen); +void wnck_screen_toggle_showing_desktop (WnckScreen *screen, + gboolean show); +void wnck_screen_move_viewport (WnckScreen *screen, + int x, + int y); +void _wnck_screen_get_workspace_layout (WnckScreen *screen, + _WnckLayoutOrientation *orientation, + int *rows, + int *columns, + _WnckLayoutCorner *starting_corner); +int wnck_screen_try_set_workspace_layout (WnckScreen *screen, + int current_token, + int rows, + int columns); +void wnck_screen_release_workspace_layout (WnckScreen *screen, + int current_token); +#ifndef WNCK_DISABLE_DEPRECATED +G_DEPRECATED +void wnck_screen_calc_workspace_layout (WnckScreen *screen, + int num_workspaces, + int space_index, + WnckWorkspaceLayout *layout); +G_DEPRECATED +void wnck_screen_free_workspace_layout (WnckWorkspaceLayout *layout); +#endif /* WNCK_DISABLE_DEPRECATED */ + + +G_END_DECLS + +#endif /* WNCK_SCREEN_H */ diff --git a/libwnck/selector.c b/libwnck/selector.c new file mode 100644 index 0000000..c5ca6c8 --- /dev/null +++ b/libwnck/selector.c @@ -0,0 +1,1281 @@ +/* selector */ +/* vim: set sw=2 et: */ +/* + * Copyright (C) 2003 Sun Microsystems, Inc. + * Copyright (C) 2001 Free Software Foundation, Inc. + * Copyright (C) 2000 Helix Code, Inc. + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + * + * Authors: + * Mark McLoughlin + * George Lebl + * Jacob Berkman + */ + +#include + +#include + +#include +#include "selector.h" +#include "libwnck.h" +#include "screen.h" +#include "wnck-image-menu-item-private.h" +#include "private.h" + +/** + * SECTION:selector + * @short_description: a window selector widget, showing the list of windows as + * a menu. + * @see_also: #WnckTasklist + * @stability: Unstable + * + * The #WnckSelector represents client windows on a screen as a menu, where + * menu items are labelled with the window titles and icons. Activating a menu + * item activates the represented window. + * + * The #WnckSelector will automatically detect the screen it is on, and will + * represent windows of this screen only. + */ + +struct _WnckSelectorPrivate { + GtkWidget *image; + WnckWindow *icon_window; + + /* those have the same lifecycle as the menu */ + GtkWidget *menu; + GtkWidget *no_windows_item; + GHashTable *window_hash; +}; + +G_DEFINE_TYPE (WnckSelector, wnck_selector, GTK_TYPE_MENU_BAR); +#define WNCK_SELECTOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_SELECTOR, WnckSelectorPrivate)) + +static GObject *wnck_selector_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties); +static void wnck_selector_dispose (GObject *object); +static void wnck_selector_finalize (GObject *object); +static void wnck_selector_realize (GtkWidget *widget); +static void wnck_selector_unrealize (GtkWidget *widget); +static gboolean wnck_selector_scroll_event (GtkWidget *widget, + GdkEventScroll *event); +static void wnck_selector_connect_to_window (WnckSelector *selector, + WnckWindow *window); + +static void wnck_selector_insert_window (WnckSelector *selector, + WnckWindow *window); +static void wnck_selector_append_window (WnckSelector *selector, + WnckWindow *window); + +static gint +wnck_selector_windows_compare (gconstpointer a, + gconstpointer b) +{ + int posa; + int posb; + + posa = wnck_window_get_sort_order (WNCK_WINDOW (a)); + posb = wnck_window_get_sort_order (WNCK_WINDOW (b)); + + return (posa - posb); +} + +static void +wncklet_connect_while_alive (gpointer object, + const char *signal, + GCallback func, + gpointer func_data, gpointer alive_object) +{ + GClosure *closure; + + closure = g_cclosure_new (func, func_data, NULL); + g_object_watch_closure (G_OBJECT (alive_object), closure); + g_signal_connect_closure_by_id (object, + g_signal_lookup (signal, + G_OBJECT_TYPE (object)), 0, + closure, FALSE); +} + +static WnckScreen * +wnck_selector_get_screen (WnckSelector *selector) +{ + GdkScreen *screen; + + g_assert (gtk_widget_has_screen (GTK_WIDGET (selector))); + + screen = gtk_widget_get_screen (GTK_WIDGET (selector)); + + return wnck_screen_get (gdk_x11_screen_get_screen_number (screen)); +} + +static GdkPixbuf * +wnck_selector_get_default_window_icon (void) +{ + static GdkPixbuf *retval = NULL; + + if (retval) + return retval; + + retval = gdk_pixbuf_new_from_resource ("/org/gnome/libwnck/default_icon.png", NULL); + + g_assert (retval); + + return retval; +} + +static GdkPixbuf * +wnck_selector_dimm_icon (GdkPixbuf *pixbuf) +{ + int x, y, pixel_stride, row_stride; + guchar *row, *pixels; + int w, h; + GdkPixbuf *dimmed; + + w = gdk_pixbuf_get_width (pixbuf); + h = gdk_pixbuf_get_height (pixbuf); + + if (gdk_pixbuf_get_has_alpha (pixbuf)) + dimmed = gdk_pixbuf_copy (pixbuf); + else + dimmed = gdk_pixbuf_add_alpha (pixbuf, FALSE, 0, 0, 0); + + pixel_stride = 4; + + row = gdk_pixbuf_get_pixels (dimmed); + row_stride = gdk_pixbuf_get_rowstride (dimmed); + + for (y = 0; y < h; y++) + { + pixels = row; + for (x = 0; x < w; x++) + { + pixels[3] /= 2; + pixels += pixel_stride; + } + row += row_stride; + } + + return dimmed; +} + +void +_wnck_selector_set_window_icon (GtkWidget *image, + WnckWindow *window) +{ + GdkPixbuf *pixbuf, *freeme, *freeme2; + int width, height; + int icon_size = -1; + + pixbuf = NULL; + freeme = NULL; + freeme2 = NULL; + + if (window) + pixbuf = wnck_window_get_mini_icon (window); + + if (!pixbuf) + pixbuf = wnck_selector_get_default_window_icon (); + + if (icon_size == -1) + gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, NULL, &icon_size); + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + + if (icon_size != -1 && (width > icon_size || height > icon_size)) + { + double scale; + + scale = ((double) icon_size) / MAX (width, height); + + pixbuf = gdk_pixbuf_scale_simple (pixbuf, width * scale, + height * scale, GDK_INTERP_BILINEAR); + freeme = pixbuf; + } + + if (window && wnck_window_is_minimized (window)) + { + pixbuf = wnck_selector_dimm_icon (pixbuf); + freeme2 = pixbuf; + } + + gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf); + + if (freeme) + g_object_unref (freeme); + if (freeme2) + g_object_unref (freeme2); +} + +static void +wnck_selector_set_active_window (WnckSelector *selector, WnckWindow *window) +{ + _wnck_selector_set_window_icon (selector->priv->image, window); + selector->priv->icon_window = window; +} + +static void +wnck_selector_make_menu_consistent (WnckSelector *selector) +{ + GList *l, *children; + int workspace_n; + GtkWidget *workspace_item; + GtkWidget *separator; + gboolean separator_is_first; + gboolean separator_is_last; + gboolean visible_window; + + workspace_n = -1; + workspace_item = NULL; + + separator = NULL; + separator_is_first = FALSE; + separator_is_last = FALSE; + + visible_window = FALSE; + + children = gtk_container_get_children (GTK_CONTAINER (selector->priv->menu)); + + for (l = children; l; l = l->next) + { + int i; + + i = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (l->data), + "wnck-selector-workspace-n")); + + if (i > 0) + { + workspace_n = i - 1; + + /* we have two consecutive workspace items => hide the first */ + if (workspace_item) + gtk_widget_hide (workspace_item); + + workspace_item = GTK_WIDGET (l->data); + } + else if (GTK_IS_SEPARATOR_MENU_ITEM (l->data)) + { + if (!visible_window) + separator_is_first = TRUE; + separator_is_last = TRUE; + separator = GTK_WIDGET (l->data); + } + else if (gtk_widget_get_visible (l->data) && + l->data != selector->priv->no_windows_item) + { + separator_is_last = FALSE; + visible_window = TRUE; + + /* if we know of a workspace item that was not shown */ + if (workspace_item) + { + WnckWindow *window; + WnckWorkspace *workspace; + + window = g_object_get_data (G_OBJECT (l->data), + "wnck-selector-window"); + + if (window) + { + workspace = wnck_window_get_workspace (window); + if (workspace && + workspace_n == wnck_workspace_get_number (workspace)) + { + gtk_widget_show (workspace_item); + workspace_n = -1; + workspace_item = NULL; + } + } + } + } /* end if (normal item) */ + } + + g_list_free (children); + + /* do we have a trailing workspace item to be hidden? */ + if (workspace_item) + gtk_widget_hide (workspace_item); + + if (separator) + { + if (separator_is_first || separator_is_last) + gtk_widget_hide (separator); + else + gtk_widget_show (separator); + } + + if (visible_window) + gtk_widget_hide (selector->priv->no_windows_item); + else + gtk_widget_show (selector->priv->no_windows_item); +} + +static void +wnck_selector_window_icon_changed (WnckWindow *window, + WnckSelector *selector) +{ + GtkWidget *item; + + if (selector->priv->icon_window == window) + wnck_selector_set_active_window (selector, window); + + if (!selector->priv->window_hash) + return; + + item = g_hash_table_lookup (selector->priv->window_hash, window); + if (item != NULL) + { + wnck_image_menu_item_set_image_from_window (WNCK_IMAGE_MENU_ITEM (item), + window); + } +} + +static void +wnck_selector_window_name_changed (WnckWindow *window, + WnckSelector *selector) +{ + GtkWidget *item; + char *window_name; + + if (!selector->priv->window_hash) + return; + + item = g_hash_table_lookup (selector->priv->window_hash, window); + if (item != NULL) + { + window_name = _wnck_window_get_name_for_display (window, FALSE, TRUE); + gtk_menu_item_set_label (GTK_MENU_ITEM (item), window_name); + g_free (window_name); + } +} + +static void +wnck_selector_window_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state, + WnckSelector *selector) +{ + GtkWidget *item; + char *window_name; + + if (! + (changed_mask & + (WNCK_WINDOW_STATE_MINIMIZED | WNCK_WINDOW_STATE_SHADED | + WNCK_WINDOW_STATE_SKIP_TASKLIST | + WNCK_WINDOW_STATE_DEMANDS_ATTENTION | + WNCK_WINDOW_STATE_URGENT))) + return; + + if (!selector->priv->window_hash) + return; + + item = g_hash_table_lookup (selector->priv->window_hash, window); + if (item == NULL) + return; + + if (changed_mask & WNCK_WINDOW_STATE_SKIP_TASKLIST) + { + if (wnck_window_is_skip_tasklist (window)) + gtk_widget_hide (item); + else + gtk_widget_show (item); + + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); + } + + if (changed_mask & + (WNCK_WINDOW_STATE_DEMANDS_ATTENTION | WNCK_WINDOW_STATE_URGENT)) + { + if (wnck_window_or_transient_needs_attention (window)) + wnck_image_menu_item_make_label_bold (WNCK_IMAGE_MENU_ITEM (item)); + else + wnck_image_menu_item_make_label_normal (WNCK_IMAGE_MENU_ITEM (item)); + } + + if (changed_mask & + (WNCK_WINDOW_STATE_MINIMIZED | WNCK_WINDOW_STATE_SHADED)) + { + window_name = _wnck_window_get_name_for_display (window, FALSE, TRUE); + gtk_menu_item_set_label (GTK_MENU_ITEM (item), window_name); + g_free (window_name); + } +} + +static void +wnck_selector_window_workspace_changed (WnckWindow *window, + WnckSelector *selector) +{ + GtkWidget *item; + + if (!selector->priv->menu || !gtk_widget_get_visible (selector->priv->menu)) + return; + + if (!selector->priv->window_hash) + return; + + item = g_hash_table_lookup (selector->priv->window_hash, window); + if (!item) + return; + + /* destroy the item and recreate one so it's at the right position */ + gtk_widget_destroy (item); + g_hash_table_remove (selector->priv->window_hash, window); + + wnck_selector_insert_window (selector, window); + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); +} + +static void +wnck_selector_active_window_changed (WnckScreen *screen, + WnckWindow *previous_window, + WnckSelector *selector) +{ + WnckWindow *window; + + window = wnck_screen_get_active_window (screen); + + if (selector->priv->icon_window != window) + wnck_selector_set_active_window (selector, window); +} + +static void +wnck_selector_activate_window (WnckWindow *window) +{ + WnckWorkspace *workspace; + guint32 timestamp; + + /* We're in an activate callback, so gtk_get_current_time() works... */ + timestamp = gtk_get_current_event_time (); + + /* FIXME: THIS IS SICK AND WRONG AND BUGGY. See the end of + * http://mail.gnome.org/archives/wm-spec-list/2005-July/msg00032.html + * There should only be *one* activate call. + */ + workspace = wnck_window_get_workspace (window); + if (workspace) + wnck_workspace_activate (workspace, timestamp); + + wnck_window_activate (window, timestamp); +} + +static void +wnck_selector_drag_begin (GtkWidget *widget, + GdkDragContext *context, + WnckWindow *window) +{ + while (widget) + { + if (WNCK_IS_SELECTOR (widget)) + break; + + if (GTK_IS_MENU (widget)) + widget = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + widget = gtk_widget_get_parent (widget); + } + + if (widget) + _wnck_window_set_as_drag_icon (window, context, widget); +} + +static void +wnck_selector_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time, + WnckWindow *window) +{ + gulong xid; + + xid = wnck_window_get_xid (window); + gtk_selection_data_set (selection_data, + gtk_selection_data_get_target (selection_data), + 8, (guchar *)&xid, sizeof (gulong)); +} + +static GtkWidget * +wnck_selector_item_new (WnckSelector *selector, + const gchar *label, WnckWindow *window) +{ + GtkWidget *item; + static const GtkTargetEntry targets[] = { + { (gchar *) "application/x-wnck-window-id", 0, 0 } + }; + + item = wnck_image_menu_item_new_with_label (label); + + if (window != NULL) + { + /* if window demands attention, bold the label */ + if (wnck_window_or_transient_needs_attention (window)) + wnck_image_menu_item_make_label_bold (WNCK_IMAGE_MENU_ITEM (item)); + + g_hash_table_insert (selector->priv->window_hash, window, item); + } + + if (window != NULL) + { + gtk_drag_source_set (item, + GDK_BUTTON1_MASK, + targets, 1, + GDK_ACTION_MOVE); + + g_signal_connect_object (item, "drag_data_get", + G_CALLBACK (wnck_selector_drag_data_get), + G_OBJECT (window), + 0); + + g_signal_connect_object (item, "drag_begin", + G_CALLBACK (wnck_selector_drag_begin), + G_OBJECT (window), + 0); + } + + return item; +} + +static void +wnck_selector_workspace_name_changed (WnckWorkspace *workspace, + GtkLabel *label) +{ + GtkStyleContext *context; + GdkRGBA color; + char *name; + char *markup; + + context = gtk_widget_get_style_context (GTK_WIDGET (label)); + + gtk_style_context_save (context); + gtk_style_context_set_state (context, GTK_STATE_FLAG_INSENSITIVE); + gtk_style_context_get_color (context, GTK_STATE_FLAG_INSENSITIVE, &color); + gtk_style_context_restore (context); + + name = g_markup_escape_text (wnck_workspace_get_name (workspace), -1); + markup = g_strdup_printf ("%s", + (int)(color.red * 65535 + 0.5), + (int)(color.green * 65535 + 0.5), + (int)(color.blue * 65535 + 0.5), name); + g_free (name); + + gtk_label_set_markup (label, markup); + g_free (markup); +} + +static void +wnck_selector_workspace_label_style_updated (GtkLabel *label, + WnckWorkspace *workspace) +{ + wnck_selector_workspace_name_changed (workspace, label); +} + +static void +wnck_selector_add_workspace (WnckSelector *selector, + WnckScreen *screen, + int workspace_n) +{ + WnckWorkspace *workspace; + GtkWidget *item; + GtkWidget *label; + + workspace = wnck_screen_get_workspace (screen, workspace_n); + + /* We use a separator in which we add a label. This makes the menu item not + * selectable without any hack. */ + item = gtk_separator_menu_item_new (); + + label = gtk_label_new (""); + gtk_label_set_xalign (GTK_LABEL (label), 1.0); + gtk_widget_show (label); + /* the handler will also take care of setting the name for the first time, + * and we'll be able to adapt to theme changes */ + g_signal_connect (G_OBJECT (label), "style-updated", + G_CALLBACK (wnck_selector_workspace_label_style_updated), + workspace); + wncklet_connect_while_alive (workspace, "name_changed", + G_CALLBACK (wnck_selector_workspace_name_changed), + label, label); + + gtk_container_add (GTK_CONTAINER (item), label); + + gtk_menu_shell_append (GTK_MENU_SHELL (selector->priv->menu), item); + + g_object_set_data (G_OBJECT (item), "wnck-selector-workspace-n", + GINT_TO_POINTER (workspace_n + 1)); +} + +static GtkWidget * +wnck_selector_create_window (WnckSelector *selector, WnckWindow *window) +{ + GtkWidget *item; + char *name; + + name = _wnck_window_get_name_for_display (window, FALSE, TRUE); + + item = wnck_selector_item_new (selector, name, window); + g_free (name); + + wnck_image_menu_item_set_image_from_window (WNCK_IMAGE_MENU_ITEM (item), + window); + + g_signal_connect_swapped (item, "activate", + G_CALLBACK (wnck_selector_activate_window), + window); + + if (!wnck_window_is_skip_tasklist (window)) + gtk_widget_show (item); + + g_object_set_data (G_OBJECT (item), "wnck-selector-window", window); + + return item; +} + +static void +wnck_selector_insert_window (WnckSelector *selector, WnckWindow *window) +{ + GtkWidget *item; + WnckScreen *screen; + WnckWorkspace *workspace; + int workspace_n; + int i; + + screen = wnck_selector_get_screen (selector); + workspace = wnck_window_get_workspace (window); + + if (!workspace && !wnck_window_is_pinned (window)) + return; + + item = wnck_selector_create_window (selector, window); + + if (!workspace || workspace == wnck_screen_get_active_workspace (screen)) + { + /* window is pinned or in the current workspace + * => insert before the separator */ + GList *l, *children; + + i = 0; + + children = gtk_container_get_children (GTK_CONTAINER (selector->priv->menu)); + for (l = children; l; l = l->next) + { + if (GTK_IS_SEPARATOR_MENU_ITEM (l->data)) + break; + i++; + } + g_list_free (children); + + gtk_menu_shell_insert (GTK_MENU_SHELL (selector->priv->menu), + item, i); + } + else + { + workspace_n = wnck_workspace_get_number (workspace); + + if (workspace_n == wnck_screen_get_workspace_count (screen) - 1) + /* window is in last workspace => just append */ + gtk_menu_shell_append (GTK_MENU_SHELL (selector->priv->menu), item); + else + { + /* insert just before the next workspace item */ + GList *l, *children; + + i = 0; + + children = gtk_container_get_children (GTK_CONTAINER (selector->priv->menu)); + for (l = children; l; l = l->next) + { + int j; + j = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (l->data), + "wnck-selector-workspace-n")); + if (j - 1 == workspace_n + 1) + break; + i++; + } + g_list_free (children); + + gtk_menu_shell_insert (GTK_MENU_SHELL (selector->priv->menu), + item, i); + } + } +} + +static void +wnck_selector_append_window (WnckSelector *selector, WnckWindow *window) +{ + GtkWidget *item; + + item = wnck_selector_create_window (selector, window); + gtk_menu_shell_append (GTK_MENU_SHELL (selector->priv->menu), item); +} + +static void +wnck_selector_window_opened (WnckScreen *screen, + WnckWindow *window, WnckSelector *selector) +{ + wnck_selector_connect_to_window (selector, window); + + if (!selector->priv->menu || !gtk_widget_get_visible (selector->priv->menu)) + return; + + if (!selector->priv->window_hash) + return; + + wnck_selector_insert_window (selector, window); + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); +} + +static void +wnck_selector_window_closed (WnckScreen *screen, + WnckWindow *window, WnckSelector *selector) +{ + GtkWidget *item; + + if (window == selector->priv->icon_window) + wnck_selector_set_active_window (selector, NULL); + + if (!selector->priv->menu || !gtk_widget_get_visible (selector->priv->menu)) + return; + + if (!selector->priv->window_hash) + return; + + item = g_hash_table_lookup (selector->priv->window_hash, window); + if (!item) + return; + + g_object_set_data (G_OBJECT (item), "wnck-selector-window", NULL); + + gtk_widget_hide (item); + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); +} + +static void +wnck_selector_workspace_created (WnckScreen *screen, + WnckWorkspace *workspace, + WnckSelector *selector) +{ + if (!selector->priv->menu || !gtk_widget_get_visible (selector->priv->menu)) + return; + + /* this is assuming that the new workspace will have a higher number + * than all the old workspaces, which is okay since the old workspaces + * didn't disappear in the meantime */ + wnck_selector_add_workspace (selector, screen, + wnck_workspace_get_number (workspace)); + + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); +} + +static void +wnck_selector_workspace_destroyed (WnckScreen *screen, + WnckWorkspace *workspace, + WnckSelector *selector) +{ + GList *l, *children; + GtkWidget *destroy; + int i; + + if (!selector->priv->menu || !gtk_widget_get_visible (selector->priv->menu)) + return; + + destroy = NULL; + + i = wnck_workspace_get_number (workspace); + + /* search for the item of this workspace so that we destroy it */ + children = gtk_container_get_children (GTK_CONTAINER (selector->priv->menu)); + + for (l = children; l; l = l->next) + { + int j; + + j = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (l->data), + "wnck-selector-workspace-n")); + + + if (j - 1 == i) + destroy = GTK_WIDGET (l->data); + else if (j - 1 > i) + /* shift the following workspaces */ + g_object_set_data (G_OBJECT (l->data), "wnck-selector-workspace-n", + GINT_TO_POINTER (j - 1)); + } + + g_list_free (children); + + if (destroy) + gtk_widget_destroy (destroy); + + wnck_selector_make_menu_consistent (selector); + + gtk_menu_reposition (GTK_MENU (selector->priv->menu)); +} + +static void +wnck_selector_connect_to_window (WnckSelector *selector, WnckWindow *window) +{ + wncklet_connect_while_alive (window, "icon_changed", + G_CALLBACK (wnck_selector_window_icon_changed), + selector, selector); + wncklet_connect_while_alive (window, "name_changed", + G_CALLBACK (wnck_selector_window_name_changed), + selector, selector); + wncklet_connect_while_alive (window, "state_changed", + G_CALLBACK (wnck_selector_window_state_changed), + selector, selector); + wncklet_connect_while_alive (window, "workspace_changed", + G_CALLBACK (wnck_selector_window_workspace_changed), + selector, selector); +} + +static void +wnck_selector_disconnect_from_window (WnckSelector *selector, + WnckWindow *window) +{ + g_signal_handlers_disconnect_by_func (window, + wnck_selector_window_icon_changed, + selector); + g_signal_handlers_disconnect_by_func (window, + wnck_selector_window_name_changed, + selector); + g_signal_handlers_disconnect_by_func (window, + wnck_selector_window_state_changed, + selector); + g_signal_handlers_disconnect_by_func (window, + wnck_selector_window_workspace_changed, + selector); +} + +static void +wnck_selector_connect_to_screen (WnckSelector *selector, WnckScreen *screen) +{ + wncklet_connect_while_alive (screen, "active_window_changed", + G_CALLBACK + (wnck_selector_active_window_changed), + selector, selector); + + wncklet_connect_while_alive (screen, "window_opened", + G_CALLBACK (wnck_selector_window_opened), + selector, selector); + + wncklet_connect_while_alive (screen, "window_closed", + G_CALLBACK (wnck_selector_window_closed), + selector, selector); + + wncklet_connect_while_alive (screen, "workspace_created", + G_CALLBACK (wnck_selector_workspace_created), + selector, selector); + + wncklet_connect_while_alive (screen, "workspace_destroyed", + G_CALLBACK (wnck_selector_workspace_destroyed), + selector, selector); +} + +static void +wnck_selector_disconnect_from_screen (WnckSelector *selector, + WnckScreen *screen) +{ + g_signal_handlers_disconnect_by_func (screen, + wnck_selector_active_window_changed, + selector); + g_signal_handlers_disconnect_by_func (screen, + wnck_selector_window_opened, + selector); + g_signal_handlers_disconnect_by_func (screen, + wnck_selector_window_closed, + selector); + g_signal_handlers_disconnect_by_func (screen, + wnck_selector_workspace_created, + selector); + g_signal_handlers_disconnect_by_func (screen, + wnck_selector_workspace_destroyed, + selector); +} + +static void +wnck_selector_destroy_menu (GtkWidget *widget, WnckSelector *selector) +{ + selector->priv->menu = NULL; + + if (selector->priv->window_hash) + g_hash_table_destroy (selector->priv->window_hash); + selector->priv->window_hash = NULL; + + selector->priv->no_windows_item = NULL; +} + +static gboolean +wnck_selector_scroll_event (GtkWidget *widget, + GdkEventScroll *event) +{ + WnckSelector *selector; + WnckScreen *screen; + WnckWorkspace *workspace; + GList *windows_list; + GList *l; + WnckWindow *window; + WnckWindow *previous_window; + gboolean should_activate_next_window; + + selector = WNCK_SELECTOR (widget); + + screen = wnck_selector_get_screen (selector); + workspace = wnck_screen_get_active_workspace (screen); + windows_list = wnck_screen_get_windows (screen); + windows_list = g_list_sort (windows_list, wnck_selector_windows_compare); + + /* Walk through the list of windows until we find the active one + * (considering only those windows on the same workspace). + * Then, depending on whether we're scrolling up or down, activate the next + * window in the list (if it exists), or the previous one. + */ + previous_window = NULL; + should_activate_next_window = FALSE; + for (l = windows_list; l; l = l->next) + { + window = WNCK_WINDOW (l->data); + + if (wnck_window_is_skip_tasklist (window)) + continue; + + if (workspace && !wnck_window_is_pinned (window) && + wnck_window_get_workspace (window) != workspace) + continue; + + if (should_activate_next_window) + { + wnck_window_activate_transient (window, event->time); + return TRUE; + } + + if (wnck_window_is_active (window)) + { + switch (event->direction) + { + case GDK_SCROLL_UP: + if (previous_window != NULL) + { + wnck_window_activate_transient (previous_window, + event->time); + return TRUE; + } + break; + + case GDK_SCROLL_DOWN: + should_activate_next_window = TRUE; + break; + + case GDK_SCROLL_LEFT: + case GDK_SCROLL_RIGHT: + /* We ignore LEFT and RIGHT scroll events. */ + break; + + case GDK_SCROLL_SMOOTH: + break; + + default: + g_assert_not_reached (); + } + } + + previous_window = window; + } + + return TRUE; +} + +static void +wnck_selector_menu_hidden (GtkWidget *menu, WnckSelector *selector) +{ + gtk_widget_set_state_flags (GTK_WIDGET (selector), GTK_STATE_FLAG_NORMAL, TRUE); +} + +static void +wnck_selector_on_show (GtkWidget *widget, WnckSelector *selector) +{ + GtkWidget *separator; + WnckScreen *screen; + WnckWorkspace *workspace; + int nb_workspace; + int i; + GList **windows_per_workspace; + GList *windows; + GList *l, *children; + + /* Remove existing items */ + children = gtk_container_get_children (GTK_CONTAINER (selector->priv->menu)); + for (l = children; l; l = l->next) + gtk_container_remove (GTK_CONTAINER (selector->priv->menu), l->data); + g_list_free (children); + + if (selector->priv->window_hash) + g_hash_table_destroy (selector->priv->window_hash); + selector->priv->window_hash = g_hash_table_new_full (g_direct_hash, + g_direct_equal, + NULL, NULL); + + screen = wnck_selector_get_screen (selector); + + nb_workspace = wnck_screen_get_workspace_count (screen); + windows_per_workspace = g_malloc0 (nb_workspace * sizeof (GList *)); + + /* Get windows ordered by workspaces */ + windows = wnck_screen_get_windows (screen); + windows = g_list_sort (windows, wnck_selector_windows_compare); + + for (l = windows; l; l = l->next) + { + workspace = wnck_window_get_workspace (l->data); + if (!workspace && wnck_window_is_pinned (l->data)) + workspace = wnck_screen_get_active_workspace (screen); + if (!workspace) + continue; + i = wnck_workspace_get_number (workspace); + windows_per_workspace[i] = g_list_prepend (windows_per_workspace[i], + l->data); + } + + /* Add windows from the current workspace */ + workspace = wnck_screen_get_active_workspace (screen); + if (workspace) + { + i = wnck_workspace_get_number (workspace); + + windows_per_workspace[i] = g_list_reverse (windows_per_workspace[i]); + for (l = windows_per_workspace[i]; l; l = l->next) + wnck_selector_append_window (selector, l->data); + g_list_free (windows_per_workspace[i]); + windows_per_workspace[i] = NULL; + } + + /* Add separator */ + separator = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (selector->priv->menu), separator); + + /* Add windows from other workspaces */ + for (i = 0; i < nb_workspace; i++) + { + wnck_selector_add_workspace (selector, screen, i); + windows_per_workspace[i] = g_list_reverse (windows_per_workspace[i]); + for (l = windows_per_workspace[i]; l; l = l->next) + wnck_selector_append_window (selector, l->data); + g_list_free (windows_per_workspace[i]); + windows_per_workspace[i] = NULL; + } + g_free (windows_per_workspace); + + selector->priv->no_windows_item = wnck_selector_item_new (selector, + _("No Windows Open"), + NULL); + gtk_widget_set_sensitive (selector->priv->no_windows_item, FALSE); + gtk_menu_shell_append (GTK_MENU_SHELL (selector->priv->menu), + selector->priv->no_windows_item); + + wnck_selector_make_menu_consistent (selector); +} + +static void +wnck_selector_fill (WnckSelector *selector) +{ + GtkWidget *menu_item; + GtkCssProvider *provider; + + menu_item = gtk_menu_item_new (); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (selector), menu_item); + + selector->priv->image = gtk_image_new (); + gtk_widget_show (selector->priv->image); + gtk_container_add (GTK_CONTAINER (menu_item), selector->priv->image); + + selector->priv->menu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), + selector->priv->menu); + g_signal_connect (selector->priv->menu, "hide", + G_CALLBACK (wnck_selector_menu_hidden), selector); + g_signal_connect (selector->priv->menu, "destroy", + G_CALLBACK (wnck_selector_destroy_menu), selector); + g_signal_connect (selector->priv->menu, "show", + G_CALLBACK (wnck_selector_on_show), selector); + + gtk_widget_set_name (GTK_WIDGET (selector), + "gnome-panel-window-menu-menu-bar"); + + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, + "#gnome-panel-window-menu-menu-bar {\n" + " border-width: 0px;\n" + "}", + -1, NULL); + gtk_style_context_add_provider (gtk_widget_get_style_context (GTK_WIDGET (selector)), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + g_object_unref (provider); + + gtk_widget_show (GTK_WIDGET (selector)); +} + +static void +wnck_selector_init (WnckSelector *selector) +{ + AtkObject *atk_obj; + + atk_obj = gtk_widget_get_accessible (GTK_WIDGET (selector)); + atk_object_set_name (atk_obj, _("Window Selector")); + atk_object_set_description (atk_obj, _("Tool to switch between windows")); + + selector->priv = WNCK_SELECTOR_GET_PRIVATE (selector); + + gtk_widget_add_events (GTK_WIDGET (selector), GDK_SCROLL_MASK); +} + +static void +wnck_selector_class_init (WnckSelectorClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckSelectorPrivate)); + + object_class->constructor = wnck_selector_constructor; + object_class->dispose = wnck_selector_dispose; + object_class->finalize = wnck_selector_finalize; + + widget_class->realize = wnck_selector_realize; + widget_class->unrealize = wnck_selector_unrealize; + widget_class->scroll_event = wnck_selector_scroll_event; + + gtk_widget_class_set_css_name (widget_class, "wnck-selector"); +} + +static GObject * +wnck_selector_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties) +{ + GObject *obj; + + obj = G_OBJECT_CLASS (wnck_selector_parent_class)->constructor ( + type, + n_construct_properties, + construct_properties); + + wnck_selector_fill (WNCK_SELECTOR (obj)); + + return obj; +} + +static void +wnck_selector_finalize (GObject *object) +{ + WnckSelector *selector; + + selector = WNCK_SELECTOR (object); + + if (selector->priv->window_hash) + g_hash_table_destroy (selector->priv->window_hash); + selector->priv->window_hash = NULL; + + G_OBJECT_CLASS (wnck_selector_parent_class)->finalize (object); +} + +static void +wnck_selector_dispose (GObject *object) +{ + WnckSelector *selector; + + selector = WNCK_SELECTOR (object); + + if (selector->priv->menu) + gtk_widget_destroy (selector->priv->menu); + selector->priv->menu = NULL; + + selector->priv->image = NULL; + selector->priv->icon_window = NULL; + + G_OBJECT_CLASS (wnck_selector_parent_class)->dispose (object); +} + +static void +wnck_selector_realize (GtkWidget *widget) +{ + WnckSelector *selector; + WnckScreen *screen; + WnckWindow *window; + GList *l; + + GTK_WIDGET_CLASS (wnck_selector_parent_class)->realize (widget); + + selector = WNCK_SELECTOR (widget); + screen = wnck_selector_get_screen (selector); + + window = wnck_screen_get_active_window (screen); + wnck_selector_set_active_window (selector, window); + + for (l = wnck_screen_get_windows (screen); l; l = l->next) + wnck_selector_connect_to_window (selector, l->data); + + wnck_selector_connect_to_screen (selector, screen); +} + +static void +wnck_selector_unrealize (GtkWidget *widget) +{ + WnckSelector *selector; + WnckScreen *screen; + GList *l; + + selector = WNCK_SELECTOR (widget); + screen = wnck_selector_get_screen (selector); + + wnck_selector_disconnect_from_screen (selector, screen); + + for (l = wnck_screen_get_windows (screen); l; l = l->next) + wnck_selector_disconnect_from_window (selector, l->data); + + GTK_WIDGET_CLASS (wnck_selector_parent_class)->unrealize (widget); +} + +/** + * wnck_selector_new: + * + * Creates a new #WnckSelector. The #WnckSelector will list #WnckWindow of the + * #WnckScreen it is on. + * + * Return value: a newly created #WnckSelector. + * + * Since: 2.10 + */ +GtkWidget * +wnck_selector_new (void) +{ + WnckSelector *selector; + + selector = g_object_new (WNCK_TYPE_SELECTOR, NULL); + + return GTK_WIDGET (selector); +} diff --git a/libwnck/selector.h b/libwnck/selector.h new file mode 100644 index 0000000..4783162 --- /dev/null +++ b/libwnck/selector.h @@ -0,0 +1,70 @@ +/* selector */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_SELECTOR_H +#define WNCK_SELECTOR_H + +#include + +G_BEGIN_DECLS +#define WNCK_TYPE_SELECTOR (wnck_selector_get_type ()) +#define WNCK_SELECTOR(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_SELECTOR, WnckSelector)) +#define WNCK_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_SELECTOR, WnckSelectorClass)) +#define WNCK_IS_SELECTOR(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_SELECTOR)) +#define WNCK_IS_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_SELECTOR)) +#define WNCK_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_SELECTOR, WnckSelectorClass)) +typedef struct _WnckSelector WnckSelector; +typedef struct _WnckSelectorClass WnckSelectorClass; +typedef struct _WnckSelectorPrivate WnckSelectorPrivate; + +/** + * WnckSelector: + * + * The #WnckSelector struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckSelector +{ + GtkMenuBar parent_instance; + WnckSelectorPrivate *priv; +}; + +struct _WnckSelectorClass +{ + GtkMenuBarClass parent_class; + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +GtkWidget *wnck_selector_new (void); +GType wnck_selector_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* WNCK_SELECTOR_H */ diff --git a/libwnck/tasklist.c b/libwnck/tasklist.c new file mode 100644 index 0000000..0cf9844 --- /dev/null +++ b/libwnck/tasklist.c @@ -0,0 +1,4374 @@ +/* tasklist object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Kim Woelders + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2003, 2005-2007 Vincent Untz + * + * 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; if not, see . +*/ + +#include + +#include +#include +#include +#include +#include "tasklist.h" +#include "window.h" +#include "class-group.h" +#include "window-action-menu.h" +#include "wnck-image-menu-item-private.h" +#include "workspace.h" +#include "xutils.h" +#include "private.h" + +/** + * SECTION:tasklist + * @short_description: a tasklist widget, showing the list of windows as a list + * of buttons. + * @see_also: #WnckScreen, #WnckSelector + * @stability: Unstable + * + * The #WnckTasklist represents client windows on a screen as a list of buttons + * labelled with the window titles and icons. Pressing a button can activate or + * minimize the represented window, and other typical actions are available + * through a popup menu. Windows needing attention can also be distinguished + * by a fade effect on the buttons representing them, to help attract the + * user's attention. + * + * The behavior of the #WnckTasklist can be customized in various ways, like + * grouping multiple windows of the same application in one button (see + * wnck_tasklist_set_grouping() and wnck_tasklist_set_grouping_limit()), or + * showing windows from all workspaces (see + * wnck_tasklist_set_include_all_workspaces()). The fade effect for windows + * needing attention can be controlled by various style properties like + * #WnckTasklist:fade-max-loops and #WnckTasklist:fade-opacity. + * + * The tasklist also acts as iconification destination. If there are multiple + * #WnckTasklist or other applications setting the iconification destination + * for windows, the iconification destinations might not be consistent among + * windows and it is not possible to determine which #WnckTasklist (or which + * other application) owns this propriety. + */ + +/* TODO: + * + * Add total focused time to the grouping score function + * Fine tune the grouping scoring function + * Fix "changes" to icon for groups/applications + * Maybe fine tune size_allocate() some more... + * Better vertical layout handling + * prefs + * support for right-click menu merging w/ bonobo for the applet + * + */ + + +#define WNCK_TYPE_TASK (wnck_task_get_type ()) +#define WNCK_TASK(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_TASK, WnckTask)) +#define WNCK_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_TASK, WnckTaskClass)) +#define WNCK_IS_TASK(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_TASK)) +#define WNCK_IS_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_TASK)) +#define WNCK_TASK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_TASK, WnckTaskClass)) + +typedef struct _WnckTask WnckTask; +typedef struct _WnckTaskClass WnckTaskClass; + +#define DEFAULT_GROUPING_LIMIT 80 + +#define MINI_ICON_SIZE _wnck_get_default_mini_icon_size () +#define TASKLIST_BUTTON_PADDING 4 +#define TASKLIST_TEXT_MAX_WIDTH 25 /* maximum width in characters */ + +#define N_SCREEN_CONNECTIONS 5 + +#define POINT_IN_RECT(xcoord, ycoord, rect) \ + ((xcoord) >= (rect).x && \ + (xcoord) < ((rect).x + (rect).width) && \ + (ycoord) >= (rect).y && \ + (ycoord) < ((rect).y + (rect).height)) + +typedef enum +{ + WNCK_TASK_CLASS_GROUP, + WNCK_TASK_WINDOW, + WNCK_TASK_STARTUP_SEQUENCE +} WnckTaskType; + +struct _WnckTask +{ + GObject parent_instance; + + WnckTasklist *tasklist; + + GtkWidget *button; + GtkWidget *image; + GtkWidget *label; + + WnckTaskType type; + + WnckClassGroup *class_group; + WnckWindow *window; +#ifdef HAVE_STARTUP_NOTIFICATION + SnStartupSequence *startup_sequence; +#endif + + gdouble grouping_score; + + GList *windows; /* List of the WnckTask for the window, + if this is a class group */ + guint state_changed_tag; + guint icon_changed_tag; + guint name_changed_tag; + guint class_name_changed_tag; + guint class_icon_changed_tag; + + /* task menu */ + GtkWidget *menu; + /* ops menu */ + GtkWidget *action_menu; + + guint really_toggling : 1; /* Set when tasklist really wants + * to change the togglebutton state + */ + guint was_active : 1; /* used to fixup activation behavior */ + + guint button_activate; + + guint32 dnd_timestamp; + + time_t start_needs_attention; + gdouble glow_start_time; + gdouble glow_factor; + + guint button_glow; + + gint row; + gint col; + + guint resize_idle_id; +}; + +struct _WnckTaskClass +{ + GObjectClass parent_class; +}; + +typedef struct _skipped_window +{ + WnckWindow *window; + gulong tag; +} skipped_window; + +struct _WnckTasklistPrivate +{ + WnckScreen *screen; + + WnckTask *active_task; /* NULL if active window not in tasklist */ + WnckTask *active_class_group; /* NULL if active window not in tasklist */ + + gboolean include_all_workspaces; + + /* Calculated by update_lists */ + GList *class_groups; + GList *windows; + GList *windows_without_class_group; + + /* Not handled by update_lists */ + GList *startup_sequences; + + /* windows with _NET_WM_STATE_SKIP_TASKBAR set; connected to + * "state_changed" signal, but excluded from tasklist. + */ + GList *skipped_windows; + + GHashTable *class_group_hash; + GHashTable *win_hash; + + gint max_button_width; + gint max_button_height; + + gboolean switch_workspace_on_unminimize; + gboolean middle_click_close; + + WnckTasklistGroupingType grouping; + gint grouping_limit; + + guint activate_timeout_id; + guint screen_connections [N_SCREEN_CONNECTIONS]; + + guint idle_callback_tag; + + int *size_hints; + int size_hints_len; + + WnckLoadIconFunction icon_loader; + void *icon_loader_data; + GDestroyNotify free_icon_loader_data; + +#ifdef HAVE_STARTUP_NOTIFICATION + SnMonitorContext *sn_context; + guint startup_sequence_timeout; +#endif + + GdkMonitor *monitor; + GdkRectangle monitor_geometry; + GtkReliefStyle relief; + GtkOrientation orientation; + + guint drag_start_time; + + gboolean scroll_enabled; +}; + +static GType wnck_task_get_type (void); + +G_DEFINE_TYPE (WnckTask, wnck_task, G_TYPE_OBJECT); +G_DEFINE_TYPE (WnckTasklist, wnck_tasklist, GTK_TYPE_CONTAINER); +#define WNCK_TASKLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_TASKLIST, WnckTasklistPrivate)) + +static void wnck_task_finalize (GObject *object); + +static void wnck_task_stop_glow (WnckTask *task); + +static WnckTask *wnck_task_new_from_window (WnckTasklist *tasklist, + WnckWindow *window); +static WnckTask *wnck_task_new_from_class_group (WnckTasklist *tasklist, + WnckClassGroup *class_group); +#ifdef HAVE_STARTUP_NOTIFICATION +static WnckTask *wnck_task_new_from_startup_sequence (WnckTasklist *tasklist, + SnStartupSequence *sequence); +#endif +static gboolean wnck_task_get_needs_attention (WnckTask *task); + + +static char *wnck_task_get_text (WnckTask *task, + gboolean icon_text, + gboolean include_state); +static GdkPixbuf *wnck_task_get_icon (WnckTask *task); +static gint wnck_task_compare_alphabetically (gconstpointer a, + gconstpointer b); +static gint wnck_task_compare (gconstpointer a, + gconstpointer b); +static void wnck_task_update_visible_state (WnckTask *task); +static void wnck_task_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state, + gpointer data); + +static void wnck_task_drag_begin (GtkWidget *widget, + GdkDragContext *context, + WnckTask *task); +static void wnck_task_drag_end (GtkWidget *widget, + GdkDragContext *context, + WnckTask *task); +static void wnck_task_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time, + WnckTask *task); + +static void wnck_tasklist_finalize (GObject *object); + +static void wnck_tasklist_get_preferred_width (GtkWidget *widget, + int *minimum_width, + int *natural_width); +static void wnck_tasklist_get_preferred_height (GtkWidget *widget, + int *minimum_height, + int *natural_height); +static void wnck_tasklist_size_allocate (GtkWidget *widget, + GtkAllocation *allocation); +static void wnck_tasklist_realize (GtkWidget *widget); +static void wnck_tasklist_unrealize (GtkWidget *widget); +static gboolean wnck_tasklist_scroll_event (GtkWidget *widget, + GdkEventScroll *event); +static void wnck_tasklist_forall (GtkContainer *container, + gboolean include_internals, + GtkCallback callback, + gpointer callback_data); +static void wnck_tasklist_remove (GtkContainer *container, + GtkWidget *widget); +static void wnck_tasklist_free_tasks (WnckTasklist *tasklist); +static void wnck_tasklist_update_lists (WnckTasklist *tasklist); +static int wnck_tasklist_layout (GtkAllocation *allocation, + int max_width, + int max_height, + int n_buttons, + GtkOrientation orientation, + int *n_cols_out, + int *n_rows_out); + +static void wnck_tasklist_active_window_changed (WnckScreen *screen, + WnckWindow *previous_window, + WnckTasklist *tasklist); +static void wnck_tasklist_active_workspace_changed (WnckScreen *screen, + WnckWorkspace *previous_workspace, + WnckTasklist *tasklist); +static void wnck_tasklist_window_added (WnckScreen *screen, + WnckWindow *win, + WnckTasklist *tasklist); +static void wnck_tasklist_window_removed (WnckScreen *screen, + WnckWindow *win, + WnckTasklist *tasklist); +static void wnck_tasklist_viewports_changed (WnckScreen *screen, + WnckTasklist *tasklist); +static void wnck_tasklist_connect_window (WnckTasklist *tasklist, + WnckWindow *window); +static void wnck_tasklist_disconnect_window (WnckTasklist *tasklist, + WnckWindow *window); + +static void wnck_tasklist_change_active_task (WnckTasklist *tasklist, + WnckTask *active_task); +static gboolean wnck_tasklist_change_active_timeout (gpointer data); +static void wnck_tasklist_activate_task_window (WnckTask *task, + guint32 timestamp); + +static void wnck_tasklist_update_icon_geometries (WnckTasklist *tasklist, + GList *visible_tasks); +static void wnck_tasklist_connect_screen (WnckTasklist *tasklist); +static void wnck_tasklist_disconnect_screen (WnckTasklist *tasklist); + +#ifdef HAVE_STARTUP_NOTIFICATION +static void wnck_tasklist_sn_event (SnMonitorEvent *event, + void *user_data); +static void wnck_tasklist_check_end_sequence (WnckTasklist *tasklist, + WnckWindow *window); +#endif + +/* + * Keep track of all tasklist instances so we can decide + * whether to show windows from all monitors in the + * tasklist + */ +static GSList *tasklist_instances; + +static void +wnck_task_init (WnckTask *task) +{ + task->type = WNCK_TASK_WINDOW; + task->resize_idle_id = 0; +} + +static void +wnck_task_class_init (WnckTaskClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = wnck_task_finalize; +} + +static gboolean +wnck_task_button_glow (WnckTask *task) +{ + GTimeVal tv; + gdouble now; + gfloat fade_opacity, loop_time; + gint fade_max_loops; + gboolean stopped; + + g_get_current_time (&tv); + now = (tv.tv_sec * (1.0 * G_USEC_PER_SEC) + + tv.tv_usec) / G_USEC_PER_SEC; + + if (task->glow_start_time <= G_MINDOUBLE) + task->glow_start_time = now; + + gtk_widget_style_get (GTK_WIDGET (task->tasklist), "fade-opacity", &fade_opacity, + "fade-loop-time", &loop_time, + "fade-max-loops", &fade_max_loops, + NULL); + + if (task->button_glow == 0) + { + /* we're in "has stopped glowing" mode */ + task->glow_factor = fade_opacity * 0.5; + stopped = TRUE; + } + else + { + task->glow_factor = fade_opacity * (0.5 - + 0.5 * cos ((now - task->glow_start_time) * + M_PI * 2.0 / loop_time)); + + if (now - task->start_needs_attention > loop_time * 1.0 * fade_max_loops) + stopped = ABS (task->glow_factor - fade_opacity * 0.5) < 0.05; + else + stopped = FALSE; + } + + gtk_widget_queue_draw (task->button); + + if (stopped) + wnck_task_stop_glow (task); + + return !stopped; +} + +static void +wnck_task_clear_glow_start_timeout_id (WnckTask *task) +{ + task->button_glow = 0; +} + +static void +wnck_task_queue_glow (WnckTask *task) +{ + if (task->button_glow == 0) + { + task->glow_start_time = 0.0; + + /* The animation doesn't speed up or slow down based on the + * timeout value, but instead will just appear smoother or + * choppier. + */ + task->button_glow = + g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE, + 50, + (GSourceFunc) wnck_task_button_glow, task, + (GDestroyNotify) wnck_task_clear_glow_start_timeout_id); + } +} + +static void +wnck_task_stop_glow (WnckTask *task) +{ + /* We stop glowing, but we might still have the task colored, + * so we don't reset the glow factor */ + if (task->button_glow != 0) + g_source_remove (task->button_glow); +} + +static void +wnck_task_reset_glow (WnckTask *task) +{ + wnck_task_stop_glow (task); + task->glow_factor = 0.0; +} + +static void +wnck_task_finalize (GObject *object) +{ + WnckTask *task; + + task = WNCK_TASK (object); + + if (task->tasklist->priv->active_task == task) + wnck_tasklist_change_active_task (task->tasklist, NULL); + + if (task->button) + { + g_object_remove_weak_pointer (G_OBJECT (task->button), + (void**) &task->button); + gtk_widget_destroy (task->button); + task->button = NULL; + task->image = NULL; + task->label = NULL; + } + +#ifdef HAVE_STARTUP_NOTIFICATION + if (task->startup_sequence) + { + sn_startup_sequence_unref (task->startup_sequence); + task->startup_sequence = NULL; + } +#endif + + g_list_free (task->windows); + task->windows = NULL; + + if (task->state_changed_tag != 0) + { + g_signal_handler_disconnect (task->window, + task->state_changed_tag); + task->state_changed_tag = 0; + } + + if (task->icon_changed_tag != 0) + { + g_signal_handler_disconnect (task->window, + task->icon_changed_tag); + task->icon_changed_tag = 0; + } + + if (task->name_changed_tag != 0) + { + g_signal_handler_disconnect (task->window, + task->name_changed_tag); + task->name_changed_tag = 0; + } + + if (task->class_name_changed_tag != 0) + { + g_signal_handler_disconnect (task->class_group, + task->class_name_changed_tag); + task->class_name_changed_tag = 0; + } + + if (task->class_icon_changed_tag != 0) + { + g_signal_handler_disconnect (task->class_group, + task->class_icon_changed_tag); + task->class_icon_changed_tag = 0; + } + + if (task->class_group) + { + g_object_unref (task->class_group); + task->class_group = NULL; + } + + if (task->window) + { + g_object_unref (task->window); + task->window = NULL; + } + + if (task->menu) + { + gtk_widget_destroy (task->menu); + task->menu = NULL; + } + + if (task->action_menu) + { + g_object_remove_weak_pointer (G_OBJECT (task->action_menu), + (void**) &task->action_menu); + gtk_widget_destroy (task->action_menu); + task->action_menu = NULL; + } + + if (task->button_activate != 0) + { + g_source_remove (task->button_activate); + task->button_activate = 0; + } + + wnck_task_stop_glow (task); + + if (task->resize_idle_id > 0) + { + g_source_remove (task->resize_idle_id); + task->resize_idle_id = 0; + } + + G_OBJECT_CLASS (wnck_task_parent_class)->finalize (object); +} + +static void +wnck_tasklist_init (WnckTasklist *tasklist) +{ + GtkWidget *widget; + AtkObject *atk_obj; + + widget = GTK_WIDGET (tasklist); + + gtk_widget_set_has_window (widget, FALSE); + + tasklist->priv = WNCK_TASKLIST_GET_PRIVATE (tasklist); + + tasklist->priv->class_group_hash = g_hash_table_new (NULL, NULL); + tasklist->priv->win_hash = g_hash_table_new (NULL, NULL); + + tasklist->priv->grouping = WNCK_TASKLIST_AUTO_GROUP; + tasklist->priv->grouping_limit = DEFAULT_GROUPING_LIMIT; + + tasklist->priv->monitor = NULL; + tasklist->priv->monitor_geometry.width = -1; /* invalid value */ + tasklist->priv->relief = GTK_RELIEF_NORMAL; + tasklist->priv->orientation = GTK_ORIENTATION_HORIZONTAL; + tasklist->priv->scroll_enabled = TRUE; + + atk_obj = gtk_widget_get_accessible (widget); + atk_object_set_name (atk_obj, _("Window List")); + atk_object_set_description (atk_obj, _("Tool to switch between visible windows")); + +#if 0 + /* This doesn't work because, and I think this is because we have no window; + * therefore, we use the scroll events on task buttons instead */ + gtk_widget_add_events (widget, GDK_SCROLL_MASK); +#endif +} + +static void +wnck_tasklist_class_init (WnckTasklistClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckTasklistPrivate)); + + object_class->finalize = wnck_tasklist_finalize; + + widget_class->get_preferred_width = wnck_tasklist_get_preferred_width; + widget_class->get_preferred_height = wnck_tasklist_get_preferred_height; + widget_class->size_allocate = wnck_tasklist_size_allocate; + widget_class->realize = wnck_tasklist_realize; + widget_class->unrealize = wnck_tasklist_unrealize; +#if 0 + /* See comment above gtk_widget_add_events() in wnck_tasklist_init() */ + widget_class->scroll_event = wnck_tasklist_scroll_event; +#endif + + container_class->forall = wnck_tasklist_forall; + container_class->remove = wnck_tasklist_remove; + + /** + * WnckTasklist:fade-loop-time: + * + * When a window needs attention, a fade effect is drawn on the button + * representing the window. This property controls the time one loop of this + * fade effect takes, in seconds. + * + * Since: 2.16 + */ + gtk_widget_class_install_style_property (widget_class, + g_param_spec_float ("fade-loop-time", + "Loop time", + "The time one loop takes when fading, in seconds. Default: 3.0", + 0.2, 10.0, 3.0, + G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)); + + /** + * WnckTasklist:fade-max-loops: + * + * When a window needs attention, a fade effect is drawn on the button + * representing the window. This property controls the number of loops for + * this fade effect. 0 means the button will only fade to the final color. + * + * Since: 2.20 + */ + gtk_widget_class_install_style_property (widget_class, + g_param_spec_int ("fade-max-loops", + "Maximum number of loops", + "The number of fading loops. 0 means the button will only fade to the final color. Default: 5", + 0, 50, 5, + G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)); + + /** + * WnckTasklist:fade-overlay-rect: + * + * When a window needs attention, a fade effect is drawn on the button + * representing the window. Set this property to %TRUE to enable a + * compatibility mode for pixbuf engine themes that cannot react to color + * changes. If enabled, a rectangle with the correct color will be drawn on + * top of the button. + * + * Since: 2.16 + */ + gtk_widget_class_install_style_property (widget_class, + g_param_spec_boolean ("fade-overlay-rect", + "Overlay a rectangle, instead of modifying the background.", + "Compatibility mode for pixbuf engine themes that cannot react to color changes. If enabled, a rectangle with the correct color will be drawn on top of the button. Default: TRUE", + TRUE, + G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)); + + /** + * WnckTasklist:fade-opacity: + * + * When a window needs attention, a fade effect is drawn on the button + * representing the window. This property controls the final opacity that + * will be reached by the fade effect. + * + * Since: 2.16 + */ + gtk_widget_class_install_style_property (widget_class, + g_param_spec_float ("fade-opacity", + "Final opacity", + "The final opacity that will be reached. Default: 0.8", + 0.0, 1.0, 0.8, + G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)); + + gtk_widget_class_set_css_name (widget_class, "wnck-tasklist"); +} + +static void +wnck_tasklist_free_skipped_windows (WnckTasklist *tasklist) +{ + GList *l; + + l = tasklist->priv->skipped_windows; + + while (l != NULL) + { + skipped_window *skipped = (skipped_window*) l->data; + g_signal_handler_disconnect (skipped->window, skipped->tag); + g_object_unref (skipped->window); + g_free (skipped); + l = l->next; + } + + g_list_free (tasklist->priv->skipped_windows); +} + +static void +wnck_tasklist_finalize (GObject *object) +{ + WnckTasklist *tasklist; + + tasklist = WNCK_TASKLIST (object); + + /* Tasks should have gone away due to removing their + * buttons in container destruction + */ + g_assert (tasklist->priv->class_groups == NULL); + g_assert (tasklist->priv->windows == NULL); + g_assert (tasklist->priv->windows_without_class_group == NULL); + g_assert (tasklist->priv->startup_sequences == NULL); + /* wnck_tasklist_free_tasks (tasklist); */ + + if (tasklist->priv->skipped_windows) + { + wnck_tasklist_free_skipped_windows (tasklist); + tasklist->priv->skipped_windows = NULL; + } + + g_hash_table_destroy (tasklist->priv->class_group_hash); + tasklist->priv->class_group_hash = NULL; + + g_hash_table_destroy (tasklist->priv->win_hash); + tasklist->priv->win_hash = NULL; + + if (tasklist->priv->activate_timeout_id != 0) + { + g_source_remove (tasklist->priv->activate_timeout_id); + tasklist->priv->activate_timeout_id = 0; + } + + if (tasklist->priv->idle_callback_tag != 0) + { + g_source_remove (tasklist->priv->idle_callback_tag); + tasklist->priv->idle_callback_tag = 0; + } + + g_free (tasklist->priv->size_hints); + tasklist->priv->size_hints = NULL; + tasklist->priv->size_hints_len = 0; + + if (tasklist->priv->free_icon_loader_data != NULL) + (* tasklist->priv->free_icon_loader_data) (tasklist->priv->icon_loader_data); + tasklist->priv->free_icon_loader_data = NULL; + tasklist->priv->icon_loader_data = NULL; + + G_OBJECT_CLASS (wnck_tasklist_parent_class)->finalize (object); +} + +/** + * wnck_tasklist_set_grouping: + * @tasklist: a #WnckTasklist. + * @grouping: a grouping policy. + * + * Sets the grouping policy for @tasklist to @grouping. + */ +void +wnck_tasklist_set_grouping (WnckTasklist *tasklist, + WnckTasklistGroupingType grouping) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + if (tasklist->priv->grouping == grouping) + return; + + tasklist->priv->grouping = grouping; + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static void +wnck_tasklist_set_relief_callback (WnckWindow *win, + WnckTask *task, + WnckTasklist *tasklist) +{ + gtk_button_set_relief (GTK_BUTTON (task->button), tasklist->priv->relief); +} + +/** + * wnck_tasklist_set_button_relief: + * @tasklist: a #WnckTasklist. + * @relief: a relief type. + * + * Sets the relief type of the buttons in @tasklist to @relief. The main use of + * this function is proper integration of #WnckTasklist in panels with + * non-system backgrounds. + * + * Since: 2.12 + */ +void +wnck_tasklist_set_button_relief (WnckTasklist *tasklist, GtkReliefStyle relief) +{ + GList *walk; + + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + if (relief == tasklist->priv->relief) + return; + + tasklist->priv->relief = relief; + + g_hash_table_foreach (tasklist->priv->win_hash, + (GHFunc) wnck_tasklist_set_relief_callback, + tasklist); + for (walk = tasklist->priv->class_groups; walk; walk = g_list_next (walk)) + gtk_button_set_relief (GTK_BUTTON (WNCK_TASK (walk->data)->button), relief); +} + +/** + * wnck_tasklist_set_middle_click_close: + * @tasklist: a #WnckTasklist. + * @middle_click_close: whether to close windows with middle click on + * button. + * + * Sets @tasklist to close windows with mouse middle click on button, + * according to @middle_click_close. + * + * Since: 3.4.6 + */ +void +wnck_tasklist_set_middle_click_close (WnckTasklist *tasklist, + gboolean middle_click_close) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + tasklist->priv->middle_click_close = middle_click_close; +} + +/** + * wnck_tasklist_set_orientation: + * @tasklist: a #WnckTasklist. + * @orient: a GtkOrientation. + * + * Set the orientation of the @tasklist to match @orient. + * This function can be used to integrate a #WnckTasklist in vertical panels. + * + * Since: 3.4.6 + */ +void wnck_tasklist_set_orientation (WnckTasklist *tasklist, + GtkOrientation orient) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + tasklist->priv->orientation = orient; +} + +/** + * wnck_tasklist_set_scroll_enabled: + * @tasklist: a #WnckTasklist. + * @scroll_enabled: a boolean. + * + * Sets the scroll behavior of the @tasklist. When set to %TRUE, a scroll + * event over the tasklist will change the current window accordingly. + * + * Since: 3.24.0 + */ +void +wnck_tasklist_set_scroll_enabled (WnckTasklist *tasklist, + gboolean scroll_enabled) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + tasklist->priv->scroll_enabled = scroll_enabled; +} + +/** + * wnck_tasklist_get_scroll_enabled: + * @tasklist: a #WnckTasklist. + * + * Gets the scroll behavior of the @tasklist. + * + * Since: 3.24.0 + */ +gboolean +wnck_tasklist_get_scroll_enabled (WnckTasklist *tasklist) +{ + g_return_val_if_fail (WNCK_IS_TASKLIST (tasklist), TRUE); + + return tasklist->priv->scroll_enabled; +} + +/** + * wnck_tasklist_set_switch_workspace_on_unminimize: + * @tasklist: a #WnckTasklist. + * @switch_workspace_on_unminimize: whether to activate the #WnckWorkspace a + * #WnckWindow is on when unminimizing it. + * + * Sets @tasklist to activate or not the #WnckWorkspace a #WnckWindow is on + * when unminimizing it, according to @switch_workspace_on_unminimize. + * + * FIXME: does it still work? + */ +void +wnck_tasklist_set_switch_workspace_on_unminimize (WnckTasklist *tasklist, + gboolean switch_workspace_on_unminimize) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + tasklist->priv->switch_workspace_on_unminimize = switch_workspace_on_unminimize; +} + +/** + * wnck_tasklist_set_include_all_workspaces: + * @tasklist: a #WnckTasklist. + * @include_all_workspaces: whether to display #WnckWindow from all + * #WnckWorkspace in @tasklist. + * + * Sets @tasklist to display #WnckWindow from all #WnckWorkspace or not, + * according to @include_all_workspaces. + * + * Note that if the active #WnckWorkspace has a viewport and if + * @include_all_workspaces is %FALSE, then only the #WnckWindow visible in the + * viewport are displayed in @tasklist. The rationale for this is that the + * viewport is generally used to implement workspace-like behavior. A + * side-effect of this is that, when using multiple #WnckWorkspace with + * viewport, it is not possible to show all #WnckWindow from a #WnckWorkspace + * (even those that are not visible in the viewport) in @tasklist without + * showing all #WnckWindow from all #WnckWorkspace. + */ +void +wnck_tasklist_set_include_all_workspaces (WnckTasklist *tasklist, + gboolean include_all_workspaces) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + include_all_workspaces = (include_all_workspaces != 0); + + if (tasklist->priv->include_all_workspaces == include_all_workspaces) + return; + + tasklist->priv->include_all_workspaces = include_all_workspaces; + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +/** + * wnck_tasklist_set_grouping_limit: + * @tasklist: a #WnckTasklist. + * @limit: a size in pixels. + * + * Sets the maximum size of buttons in @tasklist before @tasklist tries to + * group #WnckWindow in the same #WnckApplication in only one button. This + * limit is valid only when the grouping policy of @tasklist is + * %WNCK_TASKLIST_AUTO_GROUP. + */ +void +wnck_tasklist_set_grouping_limit (WnckTasklist *tasklist, + gint limit) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + if (tasklist->priv->grouping_limit == limit) + return; + + tasklist->priv->grouping_limit = limit; + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +/** + * wnck_tasklist_set_icon_loader: + * @tasklist: a #WnckTasklist + * @load_icon_func: icon loader function + * @data: data for icon loader function + * @free_data_func: function to free the data + * + * Sets a function to be used for loading icons. + * + * Since: 2.2 + **/ +void +wnck_tasklist_set_icon_loader (WnckTasklist *tasklist, + WnckLoadIconFunction load_icon_func, + void *data, + GDestroyNotify free_data_func) +{ + g_return_if_fail (WNCK_IS_TASKLIST (tasklist)); + + if (tasklist->priv->free_icon_loader_data != NULL) + (* tasklist->priv->free_icon_loader_data) (tasklist->priv->icon_loader_data); + + tasklist->priv->icon_loader = load_icon_func; + tasklist->priv->icon_loader_data = data; + tasklist->priv->free_icon_loader_data = free_data_func; +} + +/* returns the maximal possible button width (i.e. if you + * don't want to stretch the buttons to fill the alloctions + * the width can be smaller) */ +static int +wnck_tasklist_layout (GtkAllocation *allocation, + int max_width, + int max_height, + int n_buttons, + GtkOrientation orientation, + int *n_cols_out, + int *n_rows_out) +{ + int n_cols, n_rows; + + if (n_buttons == 0) + { + *n_cols_out = 0; + *n_rows_out = 0; + return 0; + } + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + { + /* How many rows fit in the allocation */ + n_rows = allocation->height / max_height; + + /* Don't have more rows than buttons */ + n_rows = MIN (n_rows, n_buttons); + + /* At least one row */ + n_rows = MAX (n_rows, 1); + + /* We want to use as many cols as possible to limit the width */ + n_cols = (n_buttons + n_rows - 1) / n_rows; + + /* At least one column */ + n_cols = MAX (n_cols, 1); + } + else + { + /* How many cols fit in the allocation */ + n_cols = allocation->width / max_width; + + /* Don't have more cols than buttons */ + n_cols = MIN (n_cols, n_buttons); + + /* At least one col */ + n_cols = MAX (n_cols, 1); + + /* We want to use as many rows as possible to limit the height */ + n_rows = (n_buttons + n_cols - 1) / n_cols; + + /* At least one row */ + n_rows = MAX (n_rows, 1); + } + + *n_cols_out = n_cols; + *n_rows_out = n_rows; + + return allocation->width / n_cols; +} + +static void +wnck_tasklist_score_groups (WnckTasklist *tasklist, + GList *ungrouped_class_groups) +{ + WnckTask *class_group_task; + WnckTask *win_task; + GList *l, *w; + const char *first_name = NULL; + int n_windows; + int n_same_title; + double same_window_ratio; + + l = ungrouped_class_groups; + while (l != NULL) + { + class_group_task = WNCK_TASK (l->data); + + n_windows = g_list_length (class_group_task->windows); + + n_same_title = 0; + w = class_group_task->windows; + while (w != NULL) + { + win_task = WNCK_TASK (w->data); + + if (first_name == NULL) + { + if (wnck_window_has_icon_name (win_task->window)) + first_name = wnck_window_get_icon_name (win_task->window); + else + first_name = wnck_window_get_name (win_task->window); + n_same_title++; + } + else + { + const char *name; + + if (wnck_window_has_icon_name (win_task->window)) + name = wnck_window_get_icon_name (win_task->window); + else + name = wnck_window_get_name (win_task->window); + + if (strcmp (name, first_name) == 0) + n_same_title++; + } + + w = w->next; + } + same_window_ratio = (double)n_same_title/(double)n_windows; + + /* FIXME: This is fairly bogus and should be researched more. + * XP groups by least used, so we probably want to add + * total focused time to this expression. + */ + class_group_task->grouping_score = -same_window_ratio * 5 + n_windows; + + l = l->next; + } +} + +static GList * +wnck_task_get_highest_scored (GList *ungrouped_class_groups, + WnckTask **class_group_task_out) +{ + WnckTask *class_group_task; + WnckTask *best_task = NULL; + double max_score = -1000000000.0; /* Large negative score */ + GList *l; + + l = ungrouped_class_groups; + while (l != NULL) + { + class_group_task = WNCK_TASK (l->data); + + if (class_group_task->grouping_score >= max_score) + { + max_score = class_group_task->grouping_score; + best_task = class_group_task; + } + + l = l->next; + } + + *class_group_task_out = best_task; + + return g_list_remove (ungrouped_class_groups, best_task); +} + +static int +wnck_tasklist_get_button_size (GtkWidget *widget) +{ + GtkStyleContext *style_context; + GtkStateFlags state; + PangoContext *context; + PangoFontMetrics *metrics; + PangoFontDescription *description; + gint char_width; + gint text_width; + gint width; + + style_context = gtk_widget_get_style_context (widget); + state = gtk_style_context_get_state (style_context); + gtk_style_context_get (style_context, state, GTK_STYLE_PROPERTY_FONT, &description, NULL); + + context = gtk_widget_get_pango_context (widget); + metrics = pango_context_get_metrics (context, description, + pango_context_get_language (context)); + char_width = pango_font_metrics_get_approximate_char_width (metrics); + pango_font_metrics_unref (metrics); + text_width = PANGO_PIXELS (TASKLIST_TEXT_MAX_WIDTH * char_width); + + width = text_width + 2 * TASKLIST_BUTTON_PADDING + + MINI_ICON_SIZE + 2 * TASKLIST_BUTTON_PADDING; + + return width; +} + +static void +wnck_tasklist_size_request (GtkWidget *widget, + GtkRequisition *requisition) +{ + WnckTasklist *tasklist; + GtkRequisition child_req; + GtkAllocation tasklist_allocation; + GtkAllocation fake_allocation; + int max_height = 1; + int max_width = 1; + /* int u_width, u_height; */ + GList *l; + GArray *array; + GList *ungrouped_class_groups; + int n_windows; + int n_startup_sequences; + int n_rows; + int n_cols, last_n_cols; + int n_grouped_buttons; + gboolean score_set; + int val; + WnckTask *class_group_task; + int lowest_range; + int grouping_limit; + + tasklist = WNCK_TASKLIST (widget); + + /* Calculate max needed height and width of the buttons */ +#define GET_MAX_WIDTH_HEIGHT_FROM_BUTTONS(list) \ + l = list; \ + while (l != NULL) \ + { \ + WnckTask *task = WNCK_TASK (l->data); \ + \ + gtk_widget_get_preferred_size (task->button, \ + &child_req, NULL); \ + \ + max_height = MAX (child_req.height, \ + max_height); \ + max_width = MAX (child_req.width, \ + max_width); \ + \ + l = l->next; \ + } + + GET_MAX_WIDTH_HEIGHT_FROM_BUTTONS (tasklist->priv->windows) + GET_MAX_WIDTH_HEIGHT_FROM_BUTTONS (tasklist->priv->class_groups) + GET_MAX_WIDTH_HEIGHT_FROM_BUTTONS (tasklist->priv->startup_sequences) + + /* Note that the fact that we nearly don't care about the width/height + * requested by the buttons makes it possible to hide/show the label/image + * in wnck_task_size_allocated(). If we really cared about those, this + * wouldn't work since our call to gtk_widget_size_request() does not take + * into account the hidden widgets. + */ + tasklist->priv->max_button_width = wnck_tasklist_get_button_size (widget); + tasklist->priv->max_button_height = max_height; + + gtk_widget_get_allocation (GTK_WIDGET (tasklist), &tasklist_allocation); + + fake_allocation.width = tasklist_allocation.width; + fake_allocation.height = tasklist_allocation.height; + + array = g_array_new (FALSE, FALSE, sizeof (int)); + + /* Calculate size_hints list */ + + n_windows = g_list_length (tasklist->priv->windows); + n_startup_sequences = g_list_length (tasklist->priv->startup_sequences); + n_grouped_buttons = 0; + ungrouped_class_groups = g_list_copy (tasklist->priv->class_groups); + score_set = FALSE; + + grouping_limit = MIN (tasklist->priv->grouping_limit, + tasklist->priv->max_button_width); + + /* Try ungrouped mode */ + wnck_tasklist_layout (&fake_allocation, + tasklist->priv->max_button_width, + tasklist->priv->max_button_height, + n_windows + n_startup_sequences, + tasklist->priv->orientation, + &n_cols, &n_rows); + + last_n_cols = G_MAXINT; + lowest_range = G_MAXINT; + if (tasklist->priv->grouping != WNCK_TASKLIST_ALWAYS_GROUP) + { + if (tasklist->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + { + val = n_cols * tasklist->priv->max_button_width; + g_array_insert_val (array, array->len, val); + val = n_cols * grouping_limit; + g_array_insert_val (array, array->len, val); + + last_n_cols = n_cols; + lowest_range = val; + } + else + { + val = n_rows * tasklist->priv->max_button_height; + g_array_insert_val (array, array->len, val); + val = n_rows * grouping_limit; + g_array_insert_val (array, array->len, val); + + last_n_cols = n_rows; + lowest_range = val; + } + } + + while (ungrouped_class_groups != NULL && + tasklist->priv->grouping != WNCK_TASKLIST_NEVER_GROUP) + { + if (!score_set) + { + wnck_tasklist_score_groups (tasklist, ungrouped_class_groups); + score_set = TRUE; + } + + ungrouped_class_groups = wnck_task_get_highest_scored (ungrouped_class_groups, &class_group_task); + + n_grouped_buttons += g_list_length (class_group_task->windows) - 1; + + wnck_tasklist_layout (&fake_allocation, + tasklist->priv->max_button_width, + tasklist->priv->max_button_height, + n_startup_sequences + n_windows - n_grouped_buttons, + tasklist->priv->orientation, + &n_cols, &n_rows); + + if (tasklist->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + { + if (n_cols != last_n_cols && + (tasklist->priv->grouping == WNCK_TASKLIST_AUTO_GROUP || + ungrouped_class_groups == NULL)) + { + val = n_cols * tasklist->priv->max_button_width; + if (val >= lowest_range) + { + /* Overlaps old range */ + g_assert (array->len > 0); + lowest_range = n_cols * grouping_limit; + g_array_index(array, int, array->len-1) = lowest_range; + } + else + { + /* Full new range */ + g_array_insert_val (array, array->len, val); + val = n_cols * grouping_limit; + g_array_insert_val (array, array->len, val); + lowest_range = val; + } + + last_n_cols = n_cols; + } + } + else + { + if (n_rows != last_n_cols && + (tasklist->priv->grouping == WNCK_TASKLIST_AUTO_GROUP || + ungrouped_class_groups == NULL)) + { + val = n_rows * tasklist->priv->max_button_height; + if (val >= lowest_range) + { + /* Overlaps old range */ + g_assert (array->len > 0); + lowest_range = n_rows * grouping_limit; + g_array_index (array, int, array->len-1) = lowest_range; + } + else + { + /* Full new range */ + g_array_insert_val (array, array->len, val); + val = n_rows * grouping_limit; + g_array_insert_val (array, array->len, val); + lowest_range = val; + } + + last_n_cols = n_rows; + } + } + } + + g_list_free (ungrouped_class_groups); + + /* Always let you go down to a zero size: */ + if (array->len > 0) + { + g_array_index(array, int, array->len-1) = 0; + } + else + { + val = 0; + g_array_insert_val (array, 0, val); + g_array_insert_val (array, 0, val); + } + + if (tasklist->priv->size_hints) + g_free (tasklist->priv->size_hints); + + tasklist->priv->size_hints_len = array->len; + tasklist->priv->size_hints = (int *)g_array_free (array, FALSE); + + if (tasklist->priv->orientation == GTK_ORIENTATION_HORIZONTAL) + { + requisition->width = tasklist->priv->size_hints[0]; + requisition->height = fake_allocation.height; + } + else + { + requisition->width = fake_allocation.width; + requisition->height = tasklist->priv->size_hints[0]; + } +} + +static void +wnck_tasklist_get_preferred_width (GtkWidget *widget, + int *minimum_width, + int *natural_width) +{ + GtkRequisition req; + + wnck_tasklist_size_request (widget, &req); + + *minimum_width = *natural_width = req.width; +} + +static void +wnck_tasklist_get_preferred_height (GtkWidget *widget, + int *minimum_height, + int *natural_height) +{ + GtkRequisition req; + + wnck_tasklist_size_request (widget, &req); + + *minimum_height = *natural_height = req.height; +} + + +/** + * wnck_tasklist_get_size_hint_list: + * @tasklist: a #WnckTasklist. + * @n_elements: return location for the number of elements in the array + * returned by this function. This number should always be pair. + * + * Since a #WnckTasklist does not have a fixed size (#WnckWindow can be grouped + * when needed, for example), the standard size request mechanism in GTK+ is + * not enough to announce what sizes can be used by @tasklist. The size hints + * mechanism is a solution for this. See panel_applet_set_size_hints() for more + * information. + * + * Return value: a list of size hints that can be used to allocate an + * appropriate size for @tasklist. + */ +const int * +wnck_tasklist_get_size_hint_list (WnckTasklist *tasklist, + int *n_elements) +{ + g_return_val_if_fail (WNCK_IS_TASKLIST (tasklist), NULL); + g_return_val_if_fail (n_elements != NULL, NULL); + + *n_elements = tasklist->priv->size_hints_len; + return tasklist->priv->size_hints; +} + +static gboolean +task_button_queue_resize (gpointer user_data) +{ + WnckTask *task = WNCK_TASK (user_data); + + gtk_widget_queue_resize (task->button); + task->resize_idle_id = 0; + + return G_SOURCE_REMOVE; +} + +static void +wnck_task_size_allocated (GtkWidget *widget, + GtkAllocation *allocation, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GtkStyleContext *context; + GtkStateFlags state; + GtkBorder padding; + int min_image_width; + gboolean old_image_visible; + gboolean old_label_visible; + + context = gtk_widget_get_style_context (widget); + state = gtk_style_context_get_state (context); + gtk_style_context_get_padding (context, state, &padding); + + min_image_width = MINI_ICON_SIZE + + padding.left + padding.right + + 2 * TASKLIST_BUTTON_PADDING; + old_image_visible = gtk_widget_get_visible (task->image); + old_label_visible = gtk_widget_get_visible (task->label); + + if ((allocation->width < min_image_width + 2 * TASKLIST_BUTTON_PADDING) && + (allocation->width >= min_image_width)) { + gtk_widget_show (task->image); + gtk_widget_hide (task->label); + } else if (allocation->width < min_image_width) { + gtk_widget_hide (task->image); + gtk_widget_show (task->label); + } else { + gtk_widget_show (task->image); + gtk_widget_show (task->label); + } + + if (old_image_visible != gtk_widget_get_visible (task->image) || + old_label_visible != gtk_widget_get_visible (task->label)) + { + if (task->resize_idle_id == 0) + task->resize_idle_id = g_idle_add (task_button_queue_resize, task); + } +} + +static void +wnck_tasklist_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + GtkAllocation child_allocation; + WnckTasklist *tasklist; + WnckTask *class_group_task; + int n_windows; + int n_startup_sequences; + GList *l; + int button_width; + int total_width; + int n_rows; + int n_cols; + int n_grouped_buttons; + int i; + gboolean score_set; + GList *ungrouped_class_groups; + WnckTask *win_task; + GList *visible_tasks = NULL; + GList *windows_sorted = NULL; + int grouping_limit; + + if (allocation->width <= 1 || allocation->height <= 1) + { + GTK_WIDGET_CLASS (wnck_tasklist_parent_class)->size_allocate (widget, allocation); + return; + } + + tasklist = WNCK_TASKLIST (widget); + + n_windows = g_list_length (tasklist->priv->windows); + n_startup_sequences = g_list_length (tasklist->priv->startup_sequences); + n_grouped_buttons = 0; + ungrouped_class_groups = g_list_copy (tasklist->priv->class_groups); + score_set = FALSE; + + grouping_limit = MIN (tasklist->priv->grouping_limit, + tasklist->priv->max_button_width); + + /* Try ungrouped mode */ + button_width = wnck_tasklist_layout (allocation, + tasklist->priv->max_button_width, + tasklist->priv->max_button_height, + n_startup_sequences + n_windows, + tasklist->priv->orientation, + &n_cols, &n_rows); + while (ungrouped_class_groups != NULL && + ((tasklist->priv->grouping == WNCK_TASKLIST_ALWAYS_GROUP) || + ((tasklist->priv->grouping == WNCK_TASKLIST_AUTO_GROUP) && + (button_width < grouping_limit)))) + { + if (!score_set) + { + wnck_tasklist_score_groups (tasklist, ungrouped_class_groups); + score_set = TRUE; + } + + ungrouped_class_groups = wnck_task_get_highest_scored (ungrouped_class_groups, &class_group_task); + + n_grouped_buttons += g_list_length (class_group_task->windows) - 1; + + if (g_list_length (class_group_task->windows) > 1) + { + visible_tasks = g_list_prepend (visible_tasks, class_group_task); + + /* Sort */ + class_group_task->windows = g_list_sort (class_group_task->windows, + wnck_task_compare_alphabetically); + + /* Hide all this group's windows */ + l = class_group_task->windows; + while (l != NULL) + { + win_task = WNCK_TASK (l->data); + + gtk_widget_set_child_visible (GTK_WIDGET (win_task->button), FALSE); + + l = l->next; + } + } + else + { + visible_tasks = g_list_prepend (visible_tasks, class_group_task->windows->data); + gtk_widget_set_child_visible (GTK_WIDGET (class_group_task->button), FALSE); + } + + button_width = wnck_tasklist_layout (allocation, + tasklist->priv->max_button_width, + tasklist->priv->max_button_height, + n_startup_sequences + n_windows - n_grouped_buttons, + tasklist->priv->orientation, + &n_cols, &n_rows); + } + + /* Add all ungrouped windows to visible_tasks, and hide their class groups */ + l = ungrouped_class_groups; + while (l != NULL) + { + class_group_task = WNCK_TASK (l->data); + + visible_tasks = g_list_concat (visible_tasks, g_list_copy (class_group_task->windows)); + gtk_widget_set_child_visible (GTK_WIDGET (class_group_task->button), FALSE); + + l = l->next; + } + + /* Add all windows that are ungrouped because they don't belong to any class + * group */ + l = tasklist->priv->windows_without_class_group; + while (l != NULL) + { + WnckTask *task; + + task = WNCK_TASK (l->data); + visible_tasks = g_list_append (visible_tasks, task); + + l = l->next; + } + + /* Add all startup sequences */ + visible_tasks = g_list_concat (visible_tasks, g_list_copy (tasklist->priv->startup_sequences)); + + /* Sort */ + visible_tasks = g_list_sort (visible_tasks, wnck_task_compare); + + /* Allocate children */ + l = visible_tasks; + i = 0; + total_width = tasklist->priv->max_button_width * n_cols; + total_width = MIN (total_width, allocation->width); + /* FIXME: this is obviously wrong, but if we don't this, some space that the + * panel allocated to us won't have the panel popup menu, but the tasklist + * popup menu */ + total_width = allocation->width; + while (l != NULL) + { + WnckTask *task = WNCK_TASK (l->data); + int row = i % n_rows; + int col = i / n_rows; + + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) + col = n_cols - col - 1; + + child_allocation.x = total_width*col / n_cols; + child_allocation.y = allocation->height*row / n_rows; + child_allocation.width = total_width*(col + 1) / n_cols - child_allocation.x; + child_allocation.height = allocation->height*(row + 1) / n_rows - child_allocation.y; + child_allocation.x += allocation->x; + child_allocation.y += allocation->y; + + gtk_widget_size_allocate (task->button, &child_allocation); + gtk_widget_set_child_visible (GTK_WIDGET (task->button), TRUE); + + if (task->type != WNCK_TASK_STARTUP_SEQUENCE) + { + GList *ll; + + /* Build sorted windows list */ + if (g_list_length (task->windows) > 1) + windows_sorted = g_list_concat (windows_sorted, + g_list_copy (task->windows)); + else + windows_sorted = g_list_append (windows_sorted, task); + task->row = row; + task->col = col; + for (ll = task->windows; ll; ll = ll->next) + { + WNCK_TASK (ll->data)->row = row; + WNCK_TASK (ll->data)->col = col; + } + } + i++; + l = l->next; + } + + /* Update icon geometries. */ + wnck_tasklist_update_icon_geometries (tasklist, visible_tasks); + + g_list_free (visible_tasks); + g_list_free (tasklist->priv->windows); + g_list_free (ungrouped_class_groups); + tasklist->priv->windows = windows_sorted; + + GTK_WIDGET_CLASS (wnck_tasklist_parent_class)->size_allocate (widget, + allocation); +} + +static void +wnck_tasklist_realize (GtkWidget *widget) +{ + WnckTasklist *tasklist; + GdkScreen *gdkscreen; + + tasklist = WNCK_TASKLIST (widget); + + gdkscreen = gtk_widget_get_screen (widget); + tasklist->priv->screen = wnck_screen_get (gdk_x11_screen_get_screen_number (gdkscreen)); + g_assert (tasklist->priv->screen != NULL); + +#ifdef HAVE_STARTUP_NOTIFICATION + tasklist->priv->sn_context = + sn_monitor_context_new (_wnck_screen_get_sn_display (tasklist->priv->screen), + wnck_screen_get_number (tasklist->priv->screen), + wnck_tasklist_sn_event, + tasklist, + NULL); +#endif + + (* GTK_WIDGET_CLASS (wnck_tasklist_parent_class)->realize) (widget); + + tasklist_instances = g_slist_append (tasklist_instances, tasklist); + g_slist_foreach (tasklist_instances, + (GFunc) wnck_tasklist_update_lists, + NULL); + + wnck_tasklist_update_lists (tasklist); + + wnck_tasklist_connect_screen (tasklist); +} + +static void +wnck_tasklist_unrealize (GtkWidget *widget) +{ + WnckTasklist *tasklist; + + tasklist = WNCK_TASKLIST (widget); + + wnck_tasklist_disconnect_screen (tasklist); + tasklist->priv->screen = NULL; + +#ifdef HAVE_STARTUP_NOTIFICATION + sn_monitor_context_unref (tasklist->priv->sn_context); + tasklist->priv->sn_context = NULL; +#endif + + (* GTK_WIDGET_CLASS (wnck_tasklist_parent_class)->unrealize) (widget); + + tasklist_instances = g_slist_remove (tasklist_instances, tasklist); + g_slist_foreach (tasklist_instances, + (GFunc) wnck_tasklist_update_lists, + NULL); +} + +static void +wnck_tasklist_forall (GtkContainer *container, + gboolean include_internals, + GtkCallback callback, + gpointer callback_data) +{ + WnckTasklist *tasklist; + GList *tmp; + + tasklist = WNCK_TASKLIST (container); + + tmp = tasklist->priv->windows; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + (* callback) (task->button, callback_data); + } + + tmp = tasklist->priv->class_groups; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + (* callback) (task->button, callback_data); + } + + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + (* callback) (task->button, callback_data); + } +} + +static void +wnck_tasklist_remove (GtkContainer *container, + GtkWidget *widget) +{ + WnckTasklist *tasklist; + GList *tmp; + + g_return_if_fail (WNCK_IS_TASKLIST (container)); + g_return_if_fail (widget != NULL); + + tasklist = WNCK_TASKLIST (container); + + /* it's safer to handle windows_without_class_group before windows */ + tmp = tasklist->priv->windows_without_class_group; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + if (task->button == widget) + { + tasklist->priv->windows_without_class_group = + g_list_remove (tasklist->priv->windows_without_class_group, + task); + g_object_unref (task); + break; + } + } + + tmp = tasklist->priv->windows; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + if (task->button == widget) + { + g_hash_table_remove (tasklist->priv->win_hash, + task->window); + tasklist->priv->windows = + g_list_remove (tasklist->priv->windows, + task); + + gtk_widget_unparent (widget); + g_object_unref (task); + break; + } + } + + tmp = tasklist->priv->class_groups; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + if (task->button == widget) + { + g_hash_table_remove (tasklist->priv->class_group_hash, + task->class_group); + tasklist->priv->class_groups = + g_list_remove (tasklist->priv->class_groups, + task); + + gtk_widget_unparent (widget); + g_object_unref (task); + break; + } + } + + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + tmp = tmp->next; + + if (task->button == widget) + { + tasklist->priv->startup_sequences = + g_list_remove (tasklist->priv->startup_sequences, + task); + + gtk_widget_unparent (widget); + g_object_unref (task); + break; + } + } + + gtk_widget_queue_resize (GTK_WIDGET (container)); +} + +static void +wnck_tasklist_connect_screen (WnckTasklist *tasklist) +{ + GList *windows; + guint *c; + int i; + WnckScreen *screen; + + g_return_if_fail (tasklist->priv->screen != NULL); + + screen = tasklist->priv->screen; + + i = 0; + c = tasklist->priv->screen_connections; + + c [i++] = g_signal_connect_object (G_OBJECT (screen), "active_window_changed", + G_CALLBACK (wnck_tasklist_active_window_changed), + tasklist, 0); + c [i++] = g_signal_connect_object (G_OBJECT (screen), "active_workspace_changed", + G_CALLBACK (wnck_tasklist_active_workspace_changed), + tasklist, 0); + c [i++] = g_signal_connect_object (G_OBJECT (screen), "window_opened", + G_CALLBACK (wnck_tasklist_window_added), + tasklist, 0); + c [i++] = g_signal_connect_object (G_OBJECT (screen), "window_closed", + G_CALLBACK (wnck_tasklist_window_removed), + tasklist, 0); + c [i++] = g_signal_connect_object (G_OBJECT (screen), "viewports_changed", + G_CALLBACK (wnck_tasklist_viewports_changed), + tasklist, 0); + + + g_assert (i == N_SCREEN_CONNECTIONS); + + windows = wnck_screen_get_windows (screen); + while (windows != NULL) + { + wnck_tasklist_connect_window (tasklist, windows->data); + windows = windows->next; + } +} + +static void +wnck_tasklist_disconnect_screen (WnckTasklist *tasklist) +{ + GList *windows; + int i; + + windows = wnck_screen_get_windows (tasklist->priv->screen); + while (windows != NULL) + { + wnck_tasklist_disconnect_window (tasklist, windows->data); + windows = windows->next; + } + + i = 0; + while (i < N_SCREEN_CONNECTIONS) + { + if (tasklist->priv->screen_connections [i] != 0) + g_signal_handler_disconnect (G_OBJECT (tasklist->priv->screen), + tasklist->priv->screen_connections [i]); + + tasklist->priv->screen_connections [i] = 0; + + ++i; + } + + g_assert (i == N_SCREEN_CONNECTIONS); + +#ifdef HAVE_STARTUP_NOTIFICATION + if (tasklist->priv->startup_sequence_timeout != 0) + { + g_source_remove (tasklist->priv->startup_sequence_timeout); + tasklist->priv->startup_sequence_timeout = 0; + } +#endif +} + +static gboolean +wnck_tasklist_scroll_event (GtkWidget *widget, + GdkEventScroll *event) +{ + /* use the fact that tasklist->priv->windows is sorted + * see wnck_tasklist_size_allocate() */ + WnckTasklist *tasklist; + GtkTextDirection ltr; + GList *window; + gint row = 0; + gint col = 0; + + tasklist = WNCK_TASKLIST (widget); + + if (!tasklist->priv->scroll_enabled) + return FALSE; + + window = g_list_find (tasklist->priv->windows, + tasklist->priv->active_task); + if (window) + { + row = WNCK_TASK (window->data)->row; + col = WNCK_TASK (window->data)->col; + } + else + if (tasklist->priv->activate_timeout_id) + /* There is no active_task yet, but there will be one after the timeout. + * It occurs if we change the active task too fast. */ + return TRUE; + + ltr = (gtk_widget_get_direction (GTK_WIDGET (tasklist)) != GTK_TEXT_DIR_RTL); + + switch (event->direction) + { + case GDK_SCROLL_UP: + if (!window) + window = g_list_last (tasklist->priv->windows); + else + window = window->prev; + break; + + case GDK_SCROLL_DOWN: + if (!window) + window = tasklist->priv->windows; + else + window = window->next; + break; + +#define TASKLIST_GET_MOST_LEFT(ltr, window, tasklist) \ + do \ + { \ + if (ltr) \ + window = tasklist->priv->windows; \ + else \ + window = g_list_last (tasklist->priv->windows); \ + } while (0) + +#define TASKLIST_GET_MOST_RIGHT(ltr, window, tasklist) \ + do \ + { \ + if (ltr) \ + window = g_list_last (tasklist->priv->windows); \ + else \ + window = tasklist->priv->windows; \ + } while (0) + + case GDK_SCROLL_LEFT: + if (!window) + TASKLIST_GET_MOST_RIGHT (ltr, window, tasklist); + else + { + /* Search the first window on the previous colomn at same row */ + if (ltr) + { + while (window && (WNCK_TASK(window->data)->row != row || + WNCK_TASK(window->data)->col != col-1)) + window = window->prev; + } + else + { + while (window && (WNCK_TASK(window->data)->row != row || + WNCK_TASK(window->data)->col != col-1)) + window = window->next; + } + /* If no window found, select the top/bottom left one */ + if (!window) + TASKLIST_GET_MOST_LEFT (ltr, window, tasklist); + } + break; + + case GDK_SCROLL_RIGHT: + if (!window) + TASKLIST_GET_MOST_LEFT (ltr, window, tasklist); + else + { + /* Search the first window on the next colomn at same row */ + if (ltr) + { + while (window && (WNCK_TASK(window->data)->row != row || + WNCK_TASK(window->data)->col != col+1)) + window = window->next; + } + else + { + while (window && (WNCK_TASK(window->data)->row != row || + WNCK_TASK(window->data)->col != col+1)) + window = window->prev; + } + /* If no window found, select the top/bottom right one */ + if (!window) + TASKLIST_GET_MOST_RIGHT (ltr, window, tasklist); + } + break; + + case GDK_SCROLL_SMOOTH: + window = NULL; + break; + +#undef TASKLIST_GET_MOST_LEFT +#undef TASKLIST_GET_MOST_RIGHT + + default: + g_assert_not_reached (); + } + + if (window) + wnck_tasklist_activate_task_window (window->data, event->time); + + return TRUE; +} + +/** + * wnck_tasklist_new: + * + * Creates a new #WnckTasklist. The #WnckTasklist will list #WnckWindow of the + * #WnckScreen it is on. + * + * Return value: a newly created #WnckTasklist. + */ +GtkWidget* +wnck_tasklist_new (void) +{ + WnckTasklist *tasklist; + + tasklist = g_object_new (WNCK_TYPE_TASKLIST, NULL); + + return GTK_WIDGET (tasklist); +} + +static void +wnck_tasklist_free_tasks (WnckTasklist *tasklist) +{ + GList *l; + + tasklist->priv->active_task = NULL; + tasklist->priv->active_class_group = NULL; + + if (tasklist->priv->windows) + { + l = tasklist->priv->windows; + while (l != NULL) + { + WnckTask *task = WNCK_TASK (l->data); + l = l->next; + /* if we just unref the task it means we lose our ref to the + * task before we unparent the button, which breaks stuff. + */ + gtk_widget_destroy (task->button); + } + } + g_assert (tasklist->priv->windows == NULL); + g_assert (tasklist->priv->windows_without_class_group == NULL); + g_assert (g_hash_table_size (tasklist->priv->win_hash) == 0); + + if (tasklist->priv->class_groups) + { + l = tasklist->priv->class_groups; + while (l != NULL) + { + WnckTask *task = WNCK_TASK (l->data); + l = l->next; + /* if we just unref the task it means we lose our ref to the + * task before we unparent the button, which breaks stuff. + */ + gtk_widget_destroy (task->button); + } + } + + g_assert (tasklist->priv->class_groups == NULL); + g_assert (g_hash_table_size (tasklist->priv->class_group_hash) == 0); + + if (tasklist->priv->skipped_windows) + { + wnck_tasklist_free_skipped_windows (tasklist); + tasklist->priv->skipped_windows = NULL; + } +} + + +/* + * This function determines if a window should be included in the tasklist. + */ +static gboolean +tasklist_include_window_impl (WnckTasklist *tasklist, + WnckWindow *win, + gboolean check_for_skipped_list) +{ + WnckWorkspace *active_workspace; + int x, y, w, h; + + if (!check_for_skipped_list && + wnck_window_get_state (win) & WNCK_WINDOW_STATE_SKIP_TASKLIST) + return FALSE; + + if (tasklist->priv->monitor != NULL) + { + GdkDisplay *display; + GdkMonitor *monitor; + + wnck_window_get_geometry (win, &x, &y, &w, &h); + + /* Don't include the window if its center point is not on the same monitor */ + + display = gdk_display_get_default (); + monitor = gdk_display_get_monitor_at_point (display, x + w / 2, y + h / 2); + + if (monitor != tasklist->priv->monitor) + return FALSE; + } + + /* Remainder of checks aren't relevant for checking if the window should + * be in the skipped list. + */ + if (check_for_skipped_list) + return TRUE; + + if (tasklist->priv->include_all_workspaces) + return TRUE; + + if (wnck_window_is_pinned (win)) + return TRUE; + + active_workspace = wnck_screen_get_active_workspace (tasklist->priv->screen); + if (active_workspace == NULL) + return TRUE; + + if (wnck_window_or_transient_needs_attention (win)) + return TRUE; + + if (active_workspace != wnck_window_get_workspace (win)) + return FALSE; + + if (!wnck_workspace_is_virtual (active_workspace)) + return TRUE; + + return wnck_window_is_in_viewport (win, active_workspace); +} + +static gboolean +tasklist_include_in_skipped_list (WnckTasklist *tasklist, WnckWindow *win) +{ + return tasklist_include_window_impl (tasklist, + win, + TRUE /* check_for_skipped_list */); +} + +static gboolean +wnck_tasklist_include_window (WnckTasklist *tasklist, WnckWindow *win) +{ + return tasklist_include_window_impl (tasklist, + win, + FALSE /* check_for_skipped_list */); +} + +static void +wnck_tasklist_update_lists (WnckTasklist *tasklist) +{ + GdkWindow *tasklist_window; + GList *windows; + WnckWindow *win; + WnckClassGroup *class_group; + GList *l; + WnckTask *win_task; + WnckTask *class_group_task; + + wnck_tasklist_free_tasks (tasklist); + + /* wnck_tasklist_update_lists() will be called on realize */ + if (!gtk_widget_get_realized (GTK_WIDGET (tasklist))) + return; + + tasklist_window = gtk_widget_get_window (GTK_WIDGET (tasklist)); + + if (tasklist_window != NULL) + { + /* + * only show windows from this monitor if there is more than one tasklist running + */ + if (tasklist_instances == NULL || tasklist_instances->next == NULL) + { + tasklist->priv->monitor = NULL; + } + else + { + GdkDisplay *display; + GdkMonitor *monitor; + + display = gdk_display_get_default (); + monitor = gdk_display_get_monitor_at_window (display, tasklist_window); + + if (monitor != tasklist->priv->monitor) + { + tasklist->priv->monitor = monitor; + gdk_monitor_get_geometry (monitor, &tasklist->priv->monitor_geometry); + } + } + } + + l = windows = wnck_screen_get_windows (tasklist->priv->screen); + while (l != NULL) + { + win = WNCK_WINDOW (l->data); + + if (wnck_tasklist_include_window (tasklist, win)) + { + win_task = wnck_task_new_from_window (tasklist, win); + tasklist->priv->windows = g_list_prepend (tasklist->priv->windows, win_task); + g_hash_table_insert (tasklist->priv->win_hash, win, win_task); + + gtk_widget_set_parent (win_task->button, GTK_WIDGET (tasklist)); + gtk_widget_show (win_task->button); + + /* Class group */ + + class_group = wnck_window_get_class_group (win); + /* don't group windows if they do not belong to any class */ + if (strcmp (wnck_class_group_get_id (class_group), "") != 0) + { + class_group_task = + g_hash_table_lookup (tasklist->priv->class_group_hash, + class_group); + + if (class_group_task == NULL) + { + class_group_task = + wnck_task_new_from_class_group (tasklist, + class_group); + gtk_widget_set_parent (class_group_task->button, + GTK_WIDGET (tasklist)); + gtk_widget_show (class_group_task->button); + + tasklist->priv->class_groups = + g_list_prepend (tasklist->priv->class_groups, + class_group_task); + g_hash_table_insert (tasklist->priv->class_group_hash, + class_group, class_group_task); + } + + class_group_task->windows = + g_list_prepend (class_group_task->windows, + win_task); + } + else + { + g_object_ref (win_task); + tasklist->priv->windows_without_class_group = + g_list_prepend (tasklist->priv->windows_without_class_group, + win_task); + } + } + else if (tasklist_include_in_skipped_list (tasklist, win)) + { + skipped_window *skipped = g_new0 (skipped_window, 1); + skipped->window = g_object_ref (win); + skipped->tag = g_signal_connect (G_OBJECT (win), + "state_changed", + G_CALLBACK (wnck_task_state_changed), + tasklist); + tasklist->priv->skipped_windows = + g_list_prepend (tasklist->priv->skipped_windows, + (gpointer) skipped); + } + + l = l->next; + } + + /* Sort the class group list */ + l = tasklist->priv->class_groups; + while (l) + { + class_group_task = WNCK_TASK (l->data); + + class_group_task->windows = g_list_sort (class_group_task->windows, wnck_task_compare); + + /* so the number of windows in the task gets reset on the + * task label + */ + wnck_task_update_visible_state (class_group_task); + + l = l->next; + } + + /* since we cleared active_window we need to reset it */ + wnck_tasklist_active_window_changed (tasklist->priv->screen, NULL, tasklist); + + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static void +wnck_tasklist_change_active_task (WnckTasklist *tasklist, WnckTask *active_task) +{ + if (active_task && + active_task == tasklist->priv->active_task) + return; + + g_assert (active_task == NULL || + active_task->type != WNCK_TASK_STARTUP_SEQUENCE); + + if (tasklist->priv->active_task) + { + tasklist->priv->active_task->really_toggling = TRUE; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tasklist->priv->active_task->button), + FALSE); + tasklist->priv->active_task->really_toggling = FALSE; + } + + tasklist->priv->active_task = active_task; + + if (tasklist->priv->active_task) + { + tasklist->priv->active_task->really_toggling = TRUE; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tasklist->priv->active_task->button), + TRUE); + tasklist->priv->active_task->really_toggling = FALSE; + } + + if (active_task) + { + active_task = g_hash_table_lookup (tasklist->priv->class_group_hash, + active_task->class_group); + + if (active_task && + active_task == tasklist->priv->active_class_group) + return; + + if (tasklist->priv->active_class_group) + { + tasklist->priv->active_class_group->really_toggling = TRUE; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tasklist->priv->active_class_group->button), + FALSE); + tasklist->priv->active_class_group->really_toggling = FALSE; + } + + tasklist->priv->active_class_group = active_task; + + if (tasklist->priv->active_class_group) + { + tasklist->priv->active_class_group->really_toggling = TRUE; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tasklist->priv->active_class_group->button), + TRUE); + tasklist->priv->active_class_group->really_toggling = FALSE; + } + } +} + +static void +wnck_tasklist_update_icon_geometries (WnckTasklist *tasklist, + GList *visible_tasks) +{ + gint x, y, width, height; + GList *l1; + + for (l1 = visible_tasks; l1; l1 = l1->next) { + WnckTask *task = WNCK_TASK (l1->data); + GtkAllocation allocation; + + if (!gtk_widget_get_realized (task->button)) + continue; + + /* Let's cheat with some internal knowledge of GtkButton: in a + * GtkButton, the window is the same as the parent window. So + * to know the position of the widget, we should use the + * the position of the parent window and the allocation information. */ + + gtk_widget_get_allocation (task->button, &allocation); + + gdk_window_get_origin (gtk_widget_get_parent_window (task->button), + &x, &y); + + x += allocation.x; + y += allocation.y; + width = allocation.width; + height = allocation.height; + + if (task->window) + wnck_window_set_icon_geometry (task->window, + x, y, width, height); + else { + GList *l2; + + for (l2 = task->windows; l2; l2 = l2->next) { + WnckTask *win_task = WNCK_TASK (l2->data); + + g_assert (win_task->window); + + wnck_window_set_icon_geometry (win_task->window, + x, y, width, height); + } + } + } +} + +static void +wnck_tasklist_active_window_changed (WnckScreen *screen, + WnckWindow *previous_window, + WnckTasklist *tasklist) +{ + WnckWindow *active_window; + WnckWindow *initial_window; + WnckTask *active_task = NULL; + + /* FIXME: check for group modal window */ + initial_window = active_window = wnck_screen_get_active_window (screen); + active_task = g_hash_table_lookup (tasklist->priv->win_hash, active_window); + while (active_window && !active_task) + { + active_window = wnck_window_get_transient (active_window); + active_task = g_hash_table_lookup (tasklist->priv->win_hash, + active_window); + /* Check for transient cycles */ + if (active_window == initial_window) + break; + } + + wnck_tasklist_change_active_task (tasklist, active_task); +} + +static void +wnck_tasklist_active_workspace_changed (WnckScreen *screen, + WnckWorkspace *previous_workspace, + WnckTasklist *tasklist) +{ + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static void +wnck_tasklist_window_changed_workspace (WnckWindow *window, + WnckTasklist *tasklist) +{ + WnckWorkspace *active_ws; + WnckWorkspace *window_ws; + gboolean need_update; + GList *l; + + active_ws = wnck_screen_get_active_workspace (tasklist->priv->screen); + window_ws = wnck_window_get_workspace (window); + + if (!window_ws) + return; + + need_update = FALSE; + + if (active_ws == window_ws) + need_update = TRUE; + + l = tasklist->priv->windows; + while (!need_update && l != NULL) + { + WnckTask *task = l->data; + + if (task->type == WNCK_TASK_WINDOW && + task->window == window) + need_update = TRUE; + + l = l->next; + } + + if (need_update) + { + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); + } +} + +static gboolean +do_wnck_tasklist_update_lists (gpointer data) +{ + WnckTasklist *tasklist = WNCK_TASKLIST (data); + + tasklist->priv->idle_callback_tag = 0; + + wnck_tasklist_update_lists (tasklist); + + return FALSE; +} + +static void +wnck_tasklist_window_changed_geometry (WnckWindow *window, + WnckTasklist *tasklist) +{ + GdkWindow *tasklist_window; + WnckTask *win_task; + gboolean show; + gboolean monitor_changed; + int x, y, w, h; + + if (tasklist->priv->idle_callback_tag != 0) + return; + + tasklist_window = gtk_widget_get_window (GTK_WIDGET (tasklist)); + + /* + * If the (parent of the) tasklist itself skips + * the tasklist, we need an extra check whether + * the tasklist itself possibly changed monitor. + */ + monitor_changed = FALSE; + if (tasklist->priv->monitor != NULL && + (wnck_window_get_state (window) & WNCK_WINDOW_STATE_SKIP_TASKLIST) && + tasklist_window != NULL) + { + /* Do the extra check only if there is a suspect of a monitor change (= this window is off monitor) */ + wnck_window_get_geometry (window, &x, &y, &w, &h); + if (!POINT_IN_RECT (x + w / 2, y + h / 2, tasklist->priv->monitor_geometry)) + { + GdkDisplay *display; + GdkMonitor *monitor; + + display = gdk_display_get_default (); + monitor = gdk_display_get_monitor_at_window (display, tasklist_window); + + monitor_changed = (monitor != tasklist->priv->monitor); + } + } + + /* + * We want to re-generate the task list if + * the window is shown but shouldn't be or + * the window isn't shown but should be or + * the tasklist itself changed monitor. + */ + win_task = g_hash_table_lookup (tasklist->priv->win_hash, window); + show = wnck_tasklist_include_window (tasklist, window); + if (((win_task == NULL && !show) || (win_task != NULL && show)) && + !monitor_changed) + return; + + /* Don't keep any stale references */ + gtk_widget_queue_draw (GTK_WIDGET (tasklist)); + + tasklist->priv->idle_callback_tag = g_idle_add (do_wnck_tasklist_update_lists, tasklist); +} + +static void +wnck_tasklist_connect_window (WnckTasklist *tasklist, + WnckWindow *window) +{ + g_signal_connect_object (window, "workspace_changed", + G_CALLBACK (wnck_tasklist_window_changed_workspace), + tasklist, 0); + g_signal_connect_object (window, "geometry_changed", + G_CALLBACK (wnck_tasklist_window_changed_geometry), + tasklist, 0); +} + +static void +wnck_tasklist_disconnect_window (WnckTasklist *tasklist, + WnckWindow *window) +{ + g_signal_handlers_disconnect_by_func (window, + wnck_tasklist_window_changed_workspace, + tasklist); + g_signal_handlers_disconnect_by_func (window, + wnck_tasklist_window_changed_geometry, + tasklist); +} + +static void +wnck_tasklist_window_added (WnckScreen *screen, + WnckWindow *win, + WnckTasklist *tasklist) +{ +#ifdef HAVE_STARTUP_NOTIFICATION + wnck_tasklist_check_end_sequence (tasklist, win); +#endif + + wnck_tasklist_connect_window (tasklist, win); + + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static void +wnck_tasklist_window_removed (WnckScreen *screen, + WnckWindow *win, + WnckTasklist *tasklist) +{ + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static void +wnck_tasklist_viewports_changed (WnckScreen *screen, + WnckTasklist *tasklist) +{ + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); +} + +static gboolean +wnck_tasklist_change_active_timeout (gpointer data) +{ + WnckTasklist *tasklist = WNCK_TASKLIST (data); + + tasklist->priv->activate_timeout_id = 0; + + wnck_tasklist_active_window_changed (tasklist->priv->screen, NULL, tasklist); + + return FALSE; +} + +static void +wnck_task_menu_activated (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + /* This is an "activate" callback function so gtk_get_current_event_time() + * will suffice. + */ + wnck_tasklist_activate_task_window (task, gtk_get_current_event_time ()); +} + +static void +wnck_tasklist_activate_next_in_class_group (WnckTask *task, + guint32 timestamp) +{ + WnckTask *activate_task; + gboolean activate_next; + GList *l; + + activate_task = NULL; + activate_next = FALSE; + + l = task->windows; + while (l) + { + WnckTask *tmp; + + tmp = WNCK_TASK (l->data); + + if (wnck_window_is_most_recently_activated (tmp->window)) + activate_next = TRUE; + else if (activate_next) + { + activate_task = tmp; + break; + } + + l = l->next; + } + + /* no task in this group is active, or only the last one => activate + * the first task */ + if (!activate_task && task->windows) + activate_task = WNCK_TASK (task->windows->data); + + if (activate_task) + { + task->was_active = FALSE; + wnck_tasklist_activate_task_window (activate_task, timestamp); + } +} + +static void +wnck_tasklist_activate_task_window (WnckTask *task, + guint32 timestamp) +{ + WnckTasklist *tasklist; + WnckWindowState state; + WnckWorkspace *active_ws; + WnckWorkspace *window_ws; + + tasklist = task->tasklist; + + if (task->window == NULL) + return; + + state = wnck_window_get_state (task->window); + + active_ws = wnck_screen_get_active_workspace (tasklist->priv->screen); + window_ws = wnck_window_get_workspace (task->window); + + if (state & WNCK_WINDOW_STATE_MINIMIZED) + { + if (window_ws && + active_ws != window_ws && + !tasklist->priv->switch_workspace_on_unminimize) + wnck_workspace_activate (window_ws, timestamp); + + wnck_window_activate_transient (task->window, timestamp); + } + else + { + if ((task->was_active || + wnck_window_transient_is_most_recently_activated (task->window)) && + (!window_ws || active_ws == window_ws)) + { + task->was_active = FALSE; + wnck_window_minimize (task->window); + return; + } + else + { + /* FIXME: THIS IS SICK AND WRONG AND BUGGY. See the end of + * http://mail.gnome.org/archives/wm-spec-list/2005-July/msg00032.html + * There should only be *one* activate call. + */ + if (window_ws) + wnck_workspace_activate (window_ws, timestamp); + + wnck_window_activate_transient (task->window, timestamp); + } + } + + + if (tasklist->priv->activate_timeout_id) + g_source_remove (tasklist->priv->activate_timeout_id); + + tasklist->priv->activate_timeout_id = + g_timeout_add (500, &wnck_tasklist_change_active_timeout, tasklist); + + wnck_tasklist_change_active_task (tasklist, task); +} + +static void +wnck_task_close_all (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GList *l; + + l = task->windows; + while (l) + { + WnckTask *child = WNCK_TASK (l->data); + wnck_window_close (child->window, gtk_get_current_event_time ()); + l = l->next; + } +} + +static void +wnck_task_unminimize_all (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GList *l; + + l = task->windows; + while (l) + { + WnckTask *child = WNCK_TASK (l->data); + /* This is inside an activate callback, so gtk_get_current_event_time() + * will work. + */ + wnck_window_unminimize (child->window, gtk_get_current_event_time ()); + l = l->next; + } +} + +static void +wnck_task_minimize_all (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GList *l; + + l = task->windows; + while (l) + { + WnckTask *child = WNCK_TASK (l->data); + wnck_window_minimize (child->window); + l = l->next; + } +} + +static void +wnck_task_unmaximize_all (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GList *l; + + l = task->windows; + while (l) + { + WnckTask *child = WNCK_TASK (l->data); + wnck_window_unmaximize (child->window); + l = l->next; + } +} + +static void +wnck_task_maximize_all (GtkMenuItem *menu_item, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + GList *l; + + l = task->windows; + while (l) + { + WnckTask *child = WNCK_TASK (l->data); + wnck_window_maximize (child->window); + l = l->next; + } +} + +static void +wnck_task_popup_menu (WnckTask *task, + gboolean action_submenu) +{ + GtkWidget *menu; + WnckTask *win_task; + char *text; + GdkPixbuf *pixbuf; + GtkWidget *menu_item; + GList *l, *list; + + g_return_if_fail (task->type == WNCK_TASK_CLASS_GROUP); + + if (task->class_group == NULL) + return; + + if (task->menu == NULL) + { + task->menu = gtk_menu_new (); + g_object_ref_sink (task->menu); + } + + menu = task->menu; + + /* Remove old menu content */ + list = gtk_container_get_children (GTK_CONTAINER (menu)); + l = list; + while (l) + { + GtkWidget *child = GTK_WIDGET (l->data); + gtk_container_remove (GTK_CONTAINER (menu), child); + l = l->next; + } + g_list_free (list); + + l = task->windows; + while (l) + { + win_task = WNCK_TASK (l->data); + + text = wnck_task_get_text (win_task, TRUE, TRUE); + menu_item = wnck_image_menu_item_new_with_label (text); + g_free (text); + + if (wnck_task_get_needs_attention (win_task)) + _make_gtk_label_bold (GTK_LABEL (gtk_bin_get_child (GTK_BIN (menu_item)))); + + text = wnck_task_get_text (win_task, FALSE, FALSE); + gtk_widget_set_tooltip_text (menu_item, text); + g_free (text); + + pixbuf = wnck_task_get_icon (win_task); + if (pixbuf) + { + WnckImageMenuItem *item; + + item = WNCK_IMAGE_MENU_ITEM (menu_item); + + wnck_image_menu_item_set_image_from_icon_pixbuf (item, pixbuf); + g_object_unref (pixbuf); + } + + gtk_widget_show (menu_item); + + if (action_submenu) + gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), + wnck_action_menu_new (win_task->window)); + else + { + static const GtkTargetEntry targets[] = { + { (gchar *) "application/x-wnck-window-id", 0, 0 } + }; + + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_menu_activated), + G_OBJECT (win_task), + 0); + + + gtk_drag_source_set (menu_item, GDK_BUTTON1_MASK, + targets, 1, GDK_ACTION_MOVE); + g_signal_connect_object (G_OBJECT(menu_item), "drag_begin", + G_CALLBACK (wnck_task_drag_begin), + G_OBJECT (win_task), + 0); + g_signal_connect_object (G_OBJECT(menu_item), "drag_end", + G_CALLBACK (wnck_task_drag_end), + G_OBJECT (win_task), + 0); + g_signal_connect_object (G_OBJECT(menu_item), "drag_data_get", + G_CALLBACK (wnck_task_drag_data_get), + G_OBJECT (win_task), + 0); + } + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + + l = l->next; + } + + /* In case of Right click, show Minimize All, Unminimize All, Close All*/ + if (action_submenu) + { + GtkWidget *separator; + + separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), separator); + + menu_item = gtk_menu_item_new_with_mnemonic (_("Mi_nimize All")); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_minimize_all), + G_OBJECT (task), + 0); + + menu_item = gtk_menu_item_new_with_mnemonic (_("Un_minimize All")); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_unminimize_all), + G_OBJECT (task), + 0); + + menu_item = gtk_menu_item_new_with_mnemonic (_("Ma_ximize All")); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_maximize_all), + G_OBJECT (task), + 0); + + menu_item = gtk_menu_item_new_with_mnemonic (_("_Unmaximize All")); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_unmaximize_all), + G_OBJECT (task), + 0); + + separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), separator); + + menu_item = gtk_menu_item_new_with_mnemonic(_("_Close All")); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); + g_signal_connect_object (G_OBJECT (menu_item), "activate", + G_CALLBACK (wnck_task_close_all), + G_OBJECT (task), + 0); + } + + gtk_menu_set_screen (GTK_MENU (menu), + _wnck_screen_get_gdk_screen (task->tasklist->priv->screen)); + + gtk_widget_show (menu); + gtk_menu_popup_at_widget (GTK_MENU (menu), task->button, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + NULL); +} + +static void +wnck_task_button_toggled (GtkButton *button, + WnckTask *task) +{ + /* Did we really want to change the state of the togglebutton? */ + if (task->really_toggling) + return; + + /* Undo the toggle */ + task->really_toggling = TRUE; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), + !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))); + task->really_toggling = FALSE; + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + wnck_task_popup_menu (task, FALSE); + break; + case WNCK_TASK_WINDOW: + if (task->window == NULL) + return; + + /* This should only be called by clicking on the task button, so + * gtk_get_current_event_time() should be fine here... + */ + wnck_tasklist_activate_task_window (task, gtk_get_current_event_time ()); + break; + case WNCK_TASK_STARTUP_SEQUENCE: + break; + default: + break; + } +} + +static char * +wnck_task_get_text (WnckTask *task, + gboolean icon_text, + gboolean include_state) +{ + const char *name; + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + name = wnck_class_group_get_name (task->class_group); + if (name[0] != 0) + return g_strdup_printf ("%s (%d)", + name, + g_list_length (task->windows)); + else + return g_strdup_printf ("(%d)", + g_list_length (task->windows)); + + case WNCK_TASK_WINDOW: + return _wnck_window_get_name_for_display (task->window, + icon_text, include_state); + break; + + case WNCK_TASK_STARTUP_SEQUENCE: +#ifdef HAVE_STARTUP_NOTIFICATION + name = sn_startup_sequence_get_description (task->startup_sequence); + if (name == NULL) + name = sn_startup_sequence_get_name (task->startup_sequence); + if (name == NULL) + name = sn_startup_sequence_get_binary_name (task->startup_sequence); + + return g_strdup (name); +#else + return NULL; +#endif + break; + + default: + break; + } + + return NULL; +} + +static void +wnck_dimm_icon (GdkPixbuf *pixbuf) +{ + int x, y, pixel_stride, row_stride; + guchar *row, *pixels; + int w, h; + + g_assert (pixbuf != NULL); + + w = gdk_pixbuf_get_width (pixbuf); + h = gdk_pixbuf_get_height (pixbuf); + + g_assert (gdk_pixbuf_get_has_alpha (pixbuf)); + + pixel_stride = 4; + + row = gdk_pixbuf_get_pixels (pixbuf); + row_stride = gdk_pixbuf_get_rowstride (pixbuf); + + for (y = 0; y < h; y++) + { + pixels = row; + + for (x = 0; x < w; x++) + { + pixels[3] /= 2; + + pixels += pixel_stride; + } + + row += row_stride; + } +} + +static GdkPixbuf * +wnck_task_scale_icon (GdkPixbuf *orig, gboolean minimized) +{ + int w, h; + GdkPixbuf *pixbuf; + + if (!orig) + return NULL; + + w = gdk_pixbuf_get_width (orig); + h = gdk_pixbuf_get_height (orig); + + if (h != (int) MINI_ICON_SIZE || + !gdk_pixbuf_get_has_alpha (orig)) + { + double scale; + + pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, + TRUE, + 8, + MINI_ICON_SIZE * w / (double) h, + MINI_ICON_SIZE); + + scale = MINI_ICON_SIZE / (double) gdk_pixbuf_get_height (orig); + + gdk_pixbuf_scale (orig, + pixbuf, + 0, 0, + gdk_pixbuf_get_width (pixbuf), + gdk_pixbuf_get_height (pixbuf), + 0, 0, + scale, scale, + GDK_INTERP_HYPER); + } + else + pixbuf = orig; + + if (minimized) + { + if (orig == pixbuf) + pixbuf = gdk_pixbuf_copy (orig); + + wnck_dimm_icon (pixbuf); + } + + if (orig == pixbuf) + g_object_ref (pixbuf); + + return pixbuf; +} + + +static GdkPixbuf * +wnck_task_get_icon (WnckTask *task) +{ + WnckWindowState state; + GdkPixbuf *pixbuf; + + pixbuf = NULL; + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + pixbuf = wnck_task_scale_icon (wnck_class_group_get_mini_icon (task->class_group), + FALSE); + break; + + case WNCK_TASK_WINDOW: + state = wnck_window_get_state (task->window); + + pixbuf = wnck_task_scale_icon (wnck_window_get_mini_icon (task->window), + state & WNCK_WINDOW_STATE_MINIMIZED); + break; + + case WNCK_TASK_STARTUP_SEQUENCE: +#ifdef HAVE_STARTUP_NOTIFICATION + if (task->tasklist->priv->icon_loader != NULL) + { + const char *icon; + + icon = sn_startup_sequence_get_icon_name (task->startup_sequence); + if (icon != NULL) + { + GdkPixbuf *loaded; + + loaded = (* task->tasklist->priv->icon_loader) (icon, + MINI_ICON_SIZE, + 0, + task->tasklist->priv->icon_loader_data); + + if (loaded != NULL) + { + pixbuf = wnck_task_scale_icon (loaded, FALSE); + g_object_unref (G_OBJECT (loaded)); + } + } + } + + if (pixbuf == NULL) + { + _wnck_get_fallback_icons (NULL, 0, 0, + &pixbuf, MINI_ICON_SIZE, MINI_ICON_SIZE); + } +#endif + break; + + default: + break; + } + + return pixbuf; +} + +static gboolean +wnck_task_get_needs_attention (WnckTask *task) +{ + GList *l; + WnckTask *win_task; + gboolean needs_attention; + + needs_attention = FALSE; + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + task->start_needs_attention = 0; + l = task->windows; + while (l) + { + win_task = WNCK_TASK (l->data); + + if (wnck_window_or_transient_needs_attention (win_task->window)) + { + needs_attention = TRUE; + task->start_needs_attention = MAX (task->start_needs_attention, _wnck_window_or_transient_get_needs_attention_time (win_task->window)); + break; + } + + l = l->next; + } + break; + + case WNCK_TASK_WINDOW: + needs_attention = + wnck_window_or_transient_needs_attention (task->window); + task->start_needs_attention = _wnck_window_or_transient_get_needs_attention_time (task->window); + break; + + case WNCK_TASK_STARTUP_SEQUENCE: + default: + break; + } + + return needs_attention != FALSE; +} + +static void +wnck_task_update_visible_state (WnckTask *task) +{ + GdkPixbuf *pixbuf; + char *text; + + pixbuf = wnck_task_get_icon (task); + gtk_image_set_from_pixbuf (GTK_IMAGE (task->image), + pixbuf); + if (pixbuf) + g_object_unref (pixbuf); + + text = wnck_task_get_text (task, TRUE, TRUE); + if (text != NULL) + { + gtk_label_set_text (GTK_LABEL (task->label), text); + if (wnck_task_get_needs_attention (task)) + { + _make_gtk_label_bold ((GTK_LABEL (task->label))); + wnck_task_queue_glow (task); + } + else + { + _make_gtk_label_normal ((GTK_LABEL (task->label))); + wnck_task_reset_glow (task); + } + g_free (text); + } + + text = wnck_task_get_text (task, FALSE, FALSE); + /* if text is NULL, this unsets the tooltip, which is probably what we'd want + * to do */ + gtk_widget_set_tooltip_text (task->button, text); + g_free (text); + + gtk_widget_queue_resize (GTK_WIDGET (task->tasklist)); +} + +static void +wnck_task_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state, + gpointer data) +{ + WnckTasklist *tasklist = WNCK_TASKLIST (data); + + if (changed_mask & WNCK_WINDOW_STATE_SKIP_TASKLIST) + { + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); + return; + } + + if ((changed_mask & WNCK_WINDOW_STATE_DEMANDS_ATTENTION) || + (changed_mask & WNCK_WINDOW_STATE_URGENT)) + { + WnckWorkspace *active_workspace = + wnck_screen_get_active_workspace (tasklist->priv->screen); + + if (active_workspace && + (active_workspace != wnck_window_get_workspace (window) || + (wnck_workspace_is_virtual (active_workspace) && + !wnck_window_is_in_viewport (window, active_workspace)))) + { + wnck_tasklist_update_lists (tasklist); + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); + } + } + + if ((changed_mask & WNCK_WINDOW_STATE_MINIMIZED) || + (changed_mask & WNCK_WINDOW_STATE_DEMANDS_ATTENTION) || + (changed_mask & WNCK_WINDOW_STATE_URGENT)) + { + WnckTask *win_task = NULL; + + /* FIXME: Handle group modal dialogs */ + for (; window && !win_task; window = wnck_window_get_transient (window)) + win_task = g_hash_table_lookup (tasklist->priv->win_hash, window); + + if (win_task) + { + WnckTask *class_group_task; + + wnck_task_update_visible_state (win_task); + + class_group_task = + g_hash_table_lookup (tasklist->priv->class_group_hash, + win_task->class_group); + + if (class_group_task) + wnck_task_update_visible_state (class_group_task); + } + } + +} + +static void +wnck_task_icon_changed (WnckWindow *window, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + if (task) + wnck_task_update_visible_state (task); +} + +static void +wnck_task_name_changed (WnckWindow *window, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + if (task) + wnck_task_update_visible_state (task); +} + +static void +wnck_task_class_name_changed (WnckClassGroup *class_group, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + if (task) + wnck_task_update_visible_state (task); +} + +static void +wnck_task_class_icon_changed (WnckClassGroup *class_group, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + if (task) + wnck_task_update_visible_state (task); +} + +static gboolean +wnck_task_motion_timeout (gpointer data) +{ + WnckWorkspace *ws; + WnckTask *task = WNCK_TASK (data); + + task->button_activate = 0; + + /* FIXME: THIS IS SICK AND WRONG AND BUGGY. See the end of + * http://mail.gnome.org/archives/wm-spec-list/2005-July/msg00032.html + * There should only be *one* activate call. + */ + ws = wnck_window_get_workspace (task->window); + if (ws && ws != wnck_screen_get_active_workspace (wnck_screen_get_default ())) + { + wnck_workspace_activate (ws, task->dnd_timestamp); + } + wnck_window_activate_transient (task->window, task->dnd_timestamp); + + task->dnd_timestamp = 0; + + return FALSE; +} + +static void +wnck_task_drag_leave (GtkWidget *widget, + GdkDragContext *context, + guint time, + WnckTask *task) +{ + if (task->button_activate != 0) + { + g_source_remove (task->button_activate); + task->button_activate = 0; + } + + gtk_drag_unhighlight (widget); +} + +static gboolean +wnck_task_drag_motion (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + guint time, + WnckTask *task) +{ + if (gtk_drag_dest_find_target (widget, context, NULL)) + { + gtk_drag_highlight (widget); + gdk_drag_status (context, gdk_drag_context_get_suggested_action (context), time); + } + else + { + task->dnd_timestamp = time; + + if (task->button_activate == 0 && task->type == WNCK_TASK_WINDOW) + { + task->button_activate = g_timeout_add_seconds (WNCK_ACTIVATE_TIMEOUT, + wnck_task_motion_timeout, + task); + } + + gdk_drag_status (context, 0, time); + } + return TRUE; +} + +static void +wnck_task_drag_begin (GtkWidget *widget, + GdkDragContext *context, + WnckTask *task) +{ + _wnck_window_set_as_drag_icon (task->window, context, + GTK_WIDGET (task->tasklist)); + + task->tasklist->priv->drag_start_time = gtk_get_current_event_time (); +} + +static void +wnck_task_drag_end (GtkWidget *widget, + GdkDragContext *context, + WnckTask *task) +{ + task->tasklist->priv->drag_start_time = 0; +} + +static void +wnck_task_drag_data_get (GtkWidget *widget, + GdkDragContext *context, + GtkSelectionData *selection_data, + guint info, + guint time, + WnckTask *task) +{ + gulong xid; + + xid = wnck_window_get_xid (task->window); + gtk_selection_data_set (selection_data, + gtk_selection_data_get_target (selection_data), + 8, (guchar *)&xid, sizeof (gulong)); +} + +static void +wnck_task_drag_data_received (GtkWidget *widget, + GdkDragContext *context, + gint x, + gint y, + GtkSelectionData *data, + guint info, + guint time, + WnckTask *target_task) +{ + WnckTasklist *tasklist; + GList *l, *windows; + WnckWindow *window; + gulong *xid; + guint new_order, old_order, order; + WnckWindow *found_window; + + if ((gtk_selection_data_get_length (data) != sizeof (gulong)) || + (gtk_selection_data_get_format (data) != 8)) + { + gtk_drag_finish (context, FALSE, FALSE, time); + return; + } + + tasklist = target_task->tasklist; + xid = (gulong *) gtk_selection_data_get_data (data); + found_window = NULL; + new_order = 0; + windows = wnck_screen_get_windows (tasklist->priv->screen); + + for (l = windows; l; l = l->next) + { + window = WNCK_WINDOW (l->data); + if (wnck_window_get_xid (window) == *xid) + { + old_order = wnck_window_get_sort_order (window); + new_order = wnck_window_get_sort_order (target_task->window); + if (old_order < new_order) + new_order++; + found_window = window; + break; + } + } + + if (target_task->window == found_window) + { + GtkSettings *settings; + guint double_click_time; + + settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (tasklist))); + double_click_time = 0; + g_object_get (G_OBJECT (settings), + "gtk-double-click-time", &double_click_time, + NULL); + + if ((time - tasklist->priv->drag_start_time) < double_click_time) + { + wnck_tasklist_activate_task_window (target_task, time); + gtk_drag_finish (context, TRUE, FALSE, time); + return; + } + } + + if (found_window) + { + for (l = windows; l; l = l->next) + { + window = WNCK_WINDOW (l->data); + order = wnck_window_get_sort_order (window); + if (order >= new_order) + wnck_window_set_sort_order (window, order + 1); + } + wnck_window_set_sort_order (found_window, new_order); + + if (!tasklist->priv->include_all_workspaces && + !wnck_window_is_pinned (found_window)) + { + WnckWorkspace *active_space; + active_space = wnck_screen_get_active_workspace (tasklist->priv->screen); + wnck_window_move_to_workspace (found_window, active_space); + } + + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); + } + + gtk_drag_finish (context, TRUE, FALSE, time); +} + +static gboolean +wnck_task_button_press_event (GtkWidget *widget, + GdkEventButton *event, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + if (event->button == 2) + wnck_tasklist_activate_next_in_class_group (task, event->time); + else + wnck_task_popup_menu (task, + event->button == 3); + return TRUE; + + case WNCK_TASK_WINDOW: + if (event->button == 1) + { + /* is_most_recently_activated == is_active for click & + * sloppy focus methods. We use the former here because + * 'mouse' focus provides a special case. In that case, no + * window will be active, but if a window was the most + * recently active one (i.e. user moves mouse straight from + * window to tasklist), then we should still minimize it. + */ + if (wnck_window_is_most_recently_activated (task->window)) + task->was_active = TRUE; + else + task->was_active = FALSE; + + return FALSE; + } + else if (event->button == 2) + { + /* middle-click close window */ + if (task->tasklist->priv->middle_click_close == TRUE) + { + wnck_window_close (task->window, gtk_get_current_event_time ()); + return TRUE; + } + } + else if (event->button == 3) + { + if (task->action_menu) + gtk_widget_destroy (task->action_menu); + + g_assert (task->action_menu == NULL); + + task->action_menu = wnck_action_menu_new (task->window); + + g_object_add_weak_pointer (G_OBJECT (task->action_menu), + (void**) &task->action_menu); + + gtk_menu_set_screen (GTK_MENU (task->action_menu), + _wnck_screen_get_gdk_screen (task->tasklist->priv->screen)); + + gtk_widget_show (task->action_menu); + gtk_menu_popup_at_widget (GTK_MENU (task->action_menu), task->button, + GDK_GRAVITY_SOUTH_WEST, + GDK_GRAVITY_NORTH_WEST, + (GdkEvent *) event); + + g_signal_connect (task->action_menu, "selection-done", + G_CALLBACK (gtk_widget_destroy), NULL); + + return TRUE; + } + break; + + case WNCK_TASK_STARTUP_SEQUENCE: + default: + break; + } + + return FALSE; +} + +static gboolean +wnck_task_scroll_event (GtkWidget *widget, + GdkEvent *event, + gpointer data) +{ + WnckTask *task = WNCK_TASK (data); + + return wnck_tasklist_scroll_event (GTK_WIDGET (task->tasklist), (GdkEventScroll *) event); +} + +static gboolean +wnck_task_draw (GtkWidget *widget, + cairo_t *cr, + gpointer data); + +static void +wnck_task_create_widgets (WnckTask *task, GtkReliefStyle relief) +{ + GtkWidget *hbox; + GdkPixbuf *pixbuf; + char *text; + static const GtkTargetEntry targets[] = { + { (gchar *) "application/x-wnck-window-id", 0, 0 } + }; + + if (task->type == WNCK_TASK_STARTUP_SEQUENCE) + task->button = gtk_button_new (); + else + task->button = gtk_toggle_button_new (); + + gtk_button_set_relief (GTK_BUTTON (task->button), relief); + + task->button_activate = 0; + g_object_add_weak_pointer (G_OBJECT (task->button), + (void**) &task->button); + + gtk_widget_set_name (task->button, + "tasklist-button"); + + if (task->type == WNCK_TASK_WINDOW) + { + gtk_drag_source_set (GTK_WIDGET (task->button), + GDK_BUTTON1_MASK, + targets, 1, + GDK_ACTION_MOVE); + gtk_drag_dest_set (GTK_WIDGET (task->button), GTK_DEST_DEFAULT_DROP, + targets, 1, GDK_ACTION_MOVE); + } + else + gtk_drag_dest_set (GTK_WIDGET (task->button), 0, + NULL, 0, GDK_ACTION_DEFAULT); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + + pixbuf = wnck_task_get_icon (task); + if (pixbuf) + { + task->image = gtk_image_new_from_pixbuf (pixbuf); + g_object_unref (pixbuf); + } + else + task->image = gtk_image_new (); + + gtk_widget_show (task->image); + + text = wnck_task_get_text (task, TRUE, TRUE); + task->label = gtk_label_new (text); + gtk_label_set_xalign (GTK_LABEL (task->label), 0.0); + gtk_label_set_ellipsize (GTK_LABEL (task->label), + PANGO_ELLIPSIZE_END); + + if (wnck_task_get_needs_attention (task)) + { + _make_gtk_label_bold ((GTK_LABEL (task->label))); + wnck_task_queue_glow (task); + } + + gtk_widget_show (task->label); + + gtk_box_pack_start (GTK_BOX (hbox), task->image, FALSE, FALSE, + TASKLIST_BUTTON_PADDING); + gtk_box_pack_start (GTK_BOX (hbox), task->label, TRUE, TRUE, + TASKLIST_BUTTON_PADDING); + + gtk_container_add (GTK_CONTAINER (task->button), hbox); + gtk_widget_show (hbox); + g_free (text); + + text = wnck_task_get_text (task, FALSE, FALSE); + gtk_widget_set_tooltip_text (task->button, text); + g_free (text); + + /* Set up signals */ + if (GTK_IS_TOGGLE_BUTTON (task->button)) + g_signal_connect_object (G_OBJECT (task->button), "toggled", + G_CALLBACK (wnck_task_button_toggled), + G_OBJECT (task), + 0); + + g_signal_connect_object (G_OBJECT (task->button), "size_allocate", + G_CALLBACK (wnck_task_size_allocated), + G_OBJECT (task), + 0); + + g_signal_connect_object (G_OBJECT (task->button), "button_press_event", + G_CALLBACK (wnck_task_button_press_event), + G_OBJECT (task), + 0); + + gtk_widget_add_events (task->button, GDK_SCROLL_MASK); + g_signal_connect_object (G_OBJECT (task->button), "scroll_event", + G_CALLBACK (wnck_task_scroll_event), + G_OBJECT (task), + 0); + + g_signal_connect_object (G_OBJECT(task->button), "drag_motion", + G_CALLBACK (wnck_task_drag_motion), + G_OBJECT (task), + 0); + + if (task->type == WNCK_TASK_WINDOW) + { + g_signal_connect_object (G_OBJECT (task->button), "drag_data_received", + G_CALLBACK (wnck_task_drag_data_received), + G_OBJECT (task), + 0); + + } + + g_signal_connect_object (G_OBJECT(task->button), "drag_leave", + G_CALLBACK (wnck_task_drag_leave), + G_OBJECT (task), + 0); + + if (task->type == WNCK_TASK_WINDOW) { + g_signal_connect_object (G_OBJECT(task->button), "drag_data_get", + G_CALLBACK (wnck_task_drag_data_get), + G_OBJECT (task), + 0); + + g_signal_connect_object (G_OBJECT(task->button), "drag_begin", + G_CALLBACK (wnck_task_drag_begin), + G_OBJECT (task), + 0); + + g_signal_connect_object (G_OBJECT(task->button), "drag_end", + G_CALLBACK (wnck_task_drag_end), + G_OBJECT (task), + 0); + } + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + task->class_name_changed_tag = g_signal_connect (G_OBJECT (task->class_group), "name_changed", + G_CALLBACK (wnck_task_class_name_changed), task); + task->class_icon_changed_tag = g_signal_connect (G_OBJECT (task->class_group), "icon_changed", + G_CALLBACK (wnck_task_class_icon_changed), task); + break; + + case WNCK_TASK_WINDOW: + task->state_changed_tag = g_signal_connect (G_OBJECT (task->window), "state_changed", + G_CALLBACK (wnck_task_state_changed), task->tasklist); + task->icon_changed_tag = g_signal_connect (G_OBJECT (task->window), "icon_changed", + G_CALLBACK (wnck_task_icon_changed), task); + task->name_changed_tag = g_signal_connect (G_OBJECT (task->window), "name_changed", + G_CALLBACK (wnck_task_name_changed), task); + break; + + case WNCK_TASK_STARTUP_SEQUENCE: + break; + + default: + g_assert_not_reached (); + } + + g_signal_connect_object (task->button, "draw", + G_CALLBACK (wnck_task_draw), + G_OBJECT (task), + G_CONNECT_AFTER); +} + +#define ARROW_SPACE 4 +#define ARROW_SIZE 12 +#define INDICATOR_SIZE 7 + +static gboolean +wnck_task_draw (GtkWidget *widget, + cairo_t *cr, + gpointer data) +{ + int x, y; + WnckTask *task; + GtkStyleContext *context; + GtkStateFlags state; + GtkBorder padding; + GtkWidget *tasklist_widget; + gint width, height; + gboolean overlay_rect; + gint arrow_width; + gint arrow_height; + GdkRGBA color; + + task = WNCK_TASK (data); + + switch (task->type) + { + case WNCK_TASK_CLASS_GROUP: + context = gtk_widget_get_style_context (widget); + + state = gtk_style_context_get_state (context); + gtk_style_context_get_padding (context, state, &padding); + + state = (task->tasklist->priv->active_class_group == task) ? + GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_NORMAL; + + gtk_style_context_save (context); + gtk_style_context_set_state (context, state); + gtk_style_context_get_color (context, state, &color); + gtk_style_context_restore (context); + + x = gtk_widget_get_allocated_width (widget) - + (gtk_container_get_border_width (GTK_CONTAINER (widget)) + padding.right + ARROW_SIZE); + y = gtk_widget_get_allocated_height (widget) / 2; + + arrow_width = INDICATOR_SIZE + ((INDICATOR_SIZE % 2) - 1); + arrow_height = arrow_width / 2 + 1; + x += (ARROW_SIZE - arrow_width) / 2; + y -= (2 * arrow_height + ARROW_SPACE) / 2; + + cairo_save (cr); + gdk_cairo_set_source_rgba (cr, &color); + + /* Up arrow */ + cairo_move_to (cr, x, y + arrow_height); + cairo_line_to (cr, x + arrow_width / 2., y); + cairo_line_to (cr, x + arrow_width, y + arrow_height); + cairo_close_path (cr); + cairo_fill (cr); + + /* Down arrow */ + y += arrow_height + ARROW_SPACE; + cairo_move_to (cr, x, y); + cairo_line_to (cr, x + arrow_width, y); + cairo_line_to (cr, x + arrow_width / 2., y + arrow_height); + cairo_close_path (cr); + cairo_fill (cr); + + cairo_restore (cr); + + break; + + case WNCK_TASK_WINDOW: + case WNCK_TASK_STARTUP_SEQUENCE: + default: + break; + } + + if (task->glow_factor == 0.0) + return FALSE; + + /* push a translucent overlay to paint to, so we can blend later */ + cairo_push_group_with_content (cr, CAIRO_CONTENT_COLOR_ALPHA); + + width = gtk_widget_get_allocated_width (task->button); + height = gtk_widget_get_allocated_height (task->button); + + tasklist_widget = GTK_WIDGET (task->tasklist); + + context = gtk_widget_get_style_context (task->button); + + /* first draw the button */ + gtk_widget_style_get (tasklist_widget, "fade-overlay-rect", &overlay_rect, NULL); + if (overlay_rect) + { + gtk_style_context_save (context); + gtk_style_context_set_state (context, GTK_STATE_FLAG_SELECTED); + + /* Draw a rectangle with selected background color */ + gtk_render_background (context, cr, 0, 0, width, height); + + gtk_style_context_restore (context); + } + else + { + gtk_style_context_save (context); + gtk_style_context_set_state (context, GTK_STATE_FLAG_SELECTED); + gtk_style_context_add_class (context, GTK_STYLE_CLASS_BUTTON); + + cairo_save (cr); + gtk_render_background (context, cr, 0, 0, width, height); + gtk_render_frame (context, cr, 0, 0, width, height); + cairo_restore (cr); + + gtk_style_context_restore (context); + } + + /* then the contents */ + gtk_container_propagate_draw (GTK_CONTAINER (task->button), + gtk_bin_get_child (GTK_BIN (task->button)), + cr); + /* finally blend it */ + cairo_pop_group_to_source (cr); + cairo_paint_with_alpha (cr, task->glow_factor); + + return FALSE; +} + +static gint +wnck_task_compare_alphabetically (gconstpointer a, + gconstpointer b) +{ + char *text1; + char *text2; + gint result; + + text1 = wnck_task_get_text (WNCK_TASK (a), TRUE, FALSE); + text2 = wnck_task_get_text (WNCK_TASK (b), TRUE, FALSE); + + result= g_utf8_collate (text1, text2); + + g_free (text1); + g_free (text2); + + return result; +} + +static gint +compare_class_group_tasks (WnckTask *task1, WnckTask *task2) +{ + const char *name1, *name2; + + name1 = wnck_class_group_get_name (task1->class_group); + name2 = wnck_class_group_get_name (task2->class_group); + + return g_utf8_collate (name1, name2); +} + +static gint +wnck_task_compare (gconstpointer a, + gconstpointer b) +{ + WnckTask *task1 = WNCK_TASK (a); + WnckTask *task2 = WNCK_TASK (b); + gint pos1, pos2; + + pos1 = pos2 = 0; /* silence the compiler */ + + switch (task1->type) + { + case WNCK_TASK_CLASS_GROUP: + if (task2->type == WNCK_TASK_CLASS_GROUP) + return compare_class_group_tasks (task1, task2); + else + return -1; /* Sort groups before everything else */ + + case WNCK_TASK_WINDOW: + pos1 = wnck_window_get_sort_order (task1->window); + break; + case WNCK_TASK_STARTUP_SEQUENCE: + pos1 = G_MAXINT; /* startup sequences are sorted at the end. */ + break; /* Changing this will break scrolling. */ + + default: + break; + } + + switch (task2->type) + { + case WNCK_TASK_CLASS_GROUP: + if (task1->type == WNCK_TASK_CLASS_GROUP) + return compare_class_group_tasks (task1, task2); + else + return 1; /* Sort groups before everything else */ + + case WNCK_TASK_WINDOW: + pos2 = wnck_window_get_sort_order (task2->window); + break; + case WNCK_TASK_STARTUP_SEQUENCE: + pos2 = G_MAXINT; + break; + + default: + break; + } + + if (pos1 < pos2) + return -1; + else if (pos1 > pos2) + return 1; + else + return 0; /* should only happen if there's multiple processes being + * started, and then who cares about sort order... */ +} + +static void +remove_startup_sequences_for_window (WnckTasklist *tasklist, + WnckWindow *window) +{ +#ifdef HAVE_STARTUP_NOTIFICATION + const char *win_id; + GList *tmp; + + win_id = _wnck_window_get_startup_id (window); + if (win_id == NULL) + return; + + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = tmp->data; + GList *next = tmp->next; + const char *task_id; + + g_assert (task->type == WNCK_TASK_STARTUP_SEQUENCE); + + task_id = sn_startup_sequence_get_id (task->startup_sequence); + + if (task_id && strcmp (task_id, win_id) == 0) + gtk_widget_destroy (task->button); + + tmp = next; + } +#else + ; /* nothing */ +#endif +} + +static WnckTask * +wnck_task_new_from_window (WnckTasklist *tasklist, + WnckWindow *window) +{ + WnckTask *task; + + task = g_object_new (WNCK_TYPE_TASK, NULL); + task->type = WNCK_TASK_WINDOW; + task->window = g_object_ref (window); + task->class_group = g_object_ref (wnck_window_get_class_group (window)); + task->tasklist = tasklist; + + wnck_task_create_widgets (task, tasklist->priv->relief); + + remove_startup_sequences_for_window (tasklist, window); + + return task; +} + +static WnckTask * +wnck_task_new_from_class_group (WnckTasklist *tasklist, + WnckClassGroup *class_group) +{ + WnckTask *task; + + task = g_object_new (WNCK_TYPE_TASK, NULL); + + task->type = WNCK_TASK_CLASS_GROUP; + task->window = NULL; + task->class_group = g_object_ref (class_group); + task->tasklist = tasklist; + + wnck_task_create_widgets (task, tasklist->priv->relief); + + return task; +} + +#ifdef HAVE_STARTUP_NOTIFICATION +static WnckTask* +wnck_task_new_from_startup_sequence (WnckTasklist *tasklist, + SnStartupSequence *sequence) +{ + WnckTask *task; + + task = g_object_new (WNCK_TYPE_TASK, NULL); + + task->type = WNCK_TASK_STARTUP_SEQUENCE; + task->window = NULL; + task->class_group = NULL; + task->startup_sequence = sequence; + sn_startup_sequence_ref (task->startup_sequence); + task->tasklist = tasklist; + + wnck_task_create_widgets (task, tasklist->priv->relief); + + return task; +} + +/* This should be fairly long, as it should never be required unless + * apps or .desktop files are buggy, and it's confusing if + * OpenOffice or whatever seems to stop launching - people + * might decide they need to launch it again. + */ +#define STARTUP_TIMEOUT 15000 + +static gboolean +sequence_timeout_callback (void *user_data) +{ + WnckTasklist *tasklist = user_data; + GList *tmp; + GTimeVal now; + long tv_sec, tv_usec; + double elapsed; + + g_get_current_time (&now); + + restart: + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + + sn_startup_sequence_get_last_active_time (task->startup_sequence, + &tv_sec, &tv_usec); + + elapsed = + ((((double)now.tv_sec - tv_sec) * G_USEC_PER_SEC + + (now.tv_usec - tv_usec))) / 1000.0; + + if (elapsed > STARTUP_TIMEOUT) + { + g_assert (task->button != NULL); + /* removes task from list as a side effect */ + gtk_widget_destroy (task->button); + + goto restart; /* don't iterate over changed list, just restart; + * not efficient but who cares here. + */ + } + + tmp = tmp->next; + } + + if (tasklist->priv->startup_sequences == NULL) + { + tasklist->priv->startup_sequence_timeout = 0; + return FALSE; + } + else + return TRUE; +} + +static void +wnck_tasklist_sn_event (SnMonitorEvent *event, + void *user_data) +{ + WnckTasklist *tasklist; + + tasklist = WNCK_TASKLIST (user_data); + + switch (sn_monitor_event_get_type (event)) + { + case SN_MONITOR_EVENT_INITIATED: + { + WnckTask *task; + + task = wnck_task_new_from_startup_sequence (tasklist, + sn_monitor_event_get_startup_sequence (event)); + + gtk_widget_set_parent (task->button, GTK_WIDGET (tasklist)); + gtk_widget_show (task->button); + + tasklist->priv->startup_sequences = + g_list_prepend (tasklist->priv->startup_sequences, + task); + + if (tasklist->priv->startup_sequence_timeout == 0) + { + tasklist->priv->startup_sequence_timeout = + g_timeout_add_seconds (1, sequence_timeout_callback, + tasklist); + } + + gtk_widget_queue_resize (GTK_WIDGET (tasklist)); + } + break; + + case SN_MONITOR_EVENT_COMPLETED: + { + GList *tmp; + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + + if (task->startup_sequence == + sn_monitor_event_get_startup_sequence (event)) + { + g_assert (task->button != NULL); + /* removes task from list as a side effect */ + gtk_widget_destroy (task->button); + break; + } + + tmp = tmp->next; + } + } + break; + + case SN_MONITOR_EVENT_CHANGED: + break; + + case SN_MONITOR_EVENT_CANCELED: + break; + + default: + break; + } + + if (tasklist->priv->startup_sequences == NULL && + tasklist->priv->startup_sequence_timeout != 0) + { + g_source_remove (tasklist->priv->startup_sequence_timeout); + tasklist->priv->startup_sequence_timeout = 0; + } +} + +static void +wnck_tasklist_check_end_sequence (WnckTasklist *tasklist, + WnckWindow *window) +{ + const char *res_class; + const char *res_name; + GList *tmp; + + if (tasklist->priv->startup_sequences == NULL) + return; + + res_class = wnck_window_get_class_group_name (window); + res_name = wnck_window_get_class_instance_name (window); + + if (res_class == NULL && res_name == NULL) + return; + + tmp = tasklist->priv->startup_sequences; + while (tmp != NULL) + { + WnckTask *task = WNCK_TASK (tmp->data); + const char *wmclass; + + wmclass = sn_startup_sequence_get_wmclass (task->startup_sequence); + + if (wmclass != NULL && + ((res_class && strcmp (res_class, wmclass) == 0) || + (res_name && strcmp (res_name, wmclass) == 0))) + { + sn_startup_sequence_complete (task->startup_sequence); + + g_assert (task->button != NULL); + /* removes task from list as a side effect */ + gtk_widget_destroy (task->button); + + /* only match one */ + return; + } + + tmp = tmp->next; + } +} + +#endif /* HAVE_STARTUP_NOTIFICATION */ diff --git a/libwnck/tasklist.h b/libwnck/tasklist.h new file mode 100644 index 0000000..d2952f8 --- /dev/null +++ b/libwnck/tasklist.h @@ -0,0 +1,141 @@ +/* tasklist object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003, 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_TASKLIST_H +#define WNCK_TASKLIST_H + +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_TASKLIST (wnck_tasklist_get_type ()) +#define WNCK_TASKLIST(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_TASKLIST, WnckTasklist)) +#define WNCK_TASKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_TASKLIST, WnckTasklistClass)) +#define WNCK_IS_TASKLIST(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_TASKLIST)) +#define WNCK_IS_TASKLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_TASKLIST)) +#define WNCK_TASKLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_TASKLIST, WnckTasklistClass)) + +typedef struct _WnckTasklist WnckTasklist; +typedef struct _WnckTasklistClass WnckTasklistClass; +typedef struct _WnckTasklistPrivate WnckTasklistPrivate; + +/** + * WnckTasklist: + * + * The #WnckTasklist struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckTasklist +{ + GtkContainer parent_instance; + + WnckTasklistPrivate *priv; +}; + +struct _WnckTasklistClass +{ + GtkContainerClass parent_class; + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +/** + * WnckTasklistGroupingType: + * @WNCK_TASKLIST_NEVER_GROUP: never group multiple #WnckWindow of the same + * #WnckApplication. + * @WNCK_TASKLIST_AUTO_GROUP: group multiple #WnckWindow of the same + * #WnckApplication for some #WnckApplication, when there is not enough place + * to have a good-looking list of all #WnckWindow. + * @WNCK_TASKLIST_ALWAYS_GROUP: always group multiple #WnckWindow of the same + * #WnckApplication, for all #WnckApplication. + * + * Type defining the policy of the #WnckTasklist for grouping multiple + * #WnckWindow of the same #WnckApplication. + */ +typedef enum { + WNCK_TASKLIST_NEVER_GROUP, + WNCK_TASKLIST_AUTO_GROUP, + WNCK_TASKLIST_ALWAYS_GROUP +} WnckTasklistGroupingType; + +GType wnck_tasklist_get_type (void) G_GNUC_CONST; + +GtkWidget *wnck_tasklist_new (void); +const int *wnck_tasklist_get_size_hint_list (WnckTasklist *tasklist, + int *n_elements); + +void wnck_tasklist_set_grouping (WnckTasklist *tasklist, + WnckTasklistGroupingType grouping); +void wnck_tasklist_set_switch_workspace_on_unminimize (WnckTasklist *tasklist, + gboolean switch_workspace_on_unminimize); +void wnck_tasklist_set_middle_click_close (WnckTasklist *tasklist, + gboolean middle_click_close); +void wnck_tasklist_set_grouping_limit (WnckTasklist *tasklist, + gint limit); +void wnck_tasklist_set_include_all_workspaces (WnckTasklist *tasklist, + gboolean include_all_workspaces); +void wnck_tasklist_set_button_relief (WnckTasklist *tasklist, + GtkReliefStyle relief); +void wnck_tasklist_set_orientation (WnckTasklist *tasklist, + GtkOrientation orient); +void wnck_tasklist_set_scroll_enabled (WnckTasklist *tasklist, + gboolean scroll_enabled); +gboolean wnck_tasklist_get_scroll_enabled (WnckTasklist *tasklist); + +/** + * WnckLoadIconFunction: + * @icon_name: an icon name as in the Icon field in a .desktop file for the + * icon to load. + * @size: the desired icon size. + * @flags: not defined to do anything yet. + * @data: data passed to the function, set when the #WnckLoadIconFunction has + * been set for the #WnckTasklist. + * + * Specifies the type of function passed to wnck_tasklist_set_icon_loader(). + * + * Returns: it should return a GdkPixbuf of @icon_name + * at size @size, or %NULL if no icon for @icon_name at size @size could be + * loaded. + * + * Since: 2.2 + */ +typedef GdkPixbuf* (*WnckLoadIconFunction) (const char *icon_name, + int size, + unsigned int flags, + void *data); + +void wnck_tasklist_set_icon_loader (WnckTasklist *tasklist, + WnckLoadIconFunction load_icon_func, + void *data, + GDestroyNotify free_data_func); + +G_END_DECLS + +#endif /* WNCK_TASKLIST_H */ diff --git a/libwnck/test-pager.c b/libwnck/test-pager.c new file mode 100644 index 0000000..316b13a --- /dev/null +++ b/libwnck/test-pager.c @@ -0,0 +1,104 @@ +/* vim: set sw=2 et: */ + +#include +#include + +static int n_rows = 1; +static gboolean only_current = FALSE; +static gboolean rtl = FALSE; +static gboolean show_name = FALSE; +static gboolean vertical = FALSE; +static gboolean wrap_on_scroll = FALSE; + +static GOptionEntry entries[] = { + {"n-rows", 'n', 0, G_OPTION_ARG_INT, &n_rows, "Use N_ROWS rows", "N_ROWS"}, + {"only-current", 'c', 0, G_OPTION_ARG_NONE, &only_current, "Only show current workspace", NULL}, + {"rtl", 'r', 0, G_OPTION_ARG_NONE, &rtl, "Use RTL as default direction", NULL}, + {"show-name", 's', 0, G_OPTION_ARG_NONE, &show_name, "Show workspace names instead of workspace contents", NULL}, + {"vertical-orientation", 'v', 0, G_OPTION_ARG_NONE, &vertical, "Use a vertical orientation", NULL}, + {"wrap-on-scroll", 'w', 0, G_OPTION_ARG_NONE, &wrap_on_scroll, "Wrap on scrolling over borders", NULL}, + {NULL } +}; + +static void +create_pager_window (GtkOrientation orientation, + gboolean show_all, + WnckPagerDisplayMode mode, + int rows, + gboolean wrap) +{ + GtkWidget *win; + GtkWidget *pager; + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_window_stick (GTK_WINDOW (win)); +#if 0 + wnck_gtk_window_set_dock_type (GTK_WINDOW (win)); +#endif + + gtk_window_set_title (GTK_WINDOW (win), "Pager"); + + /* very very random */ + gtk_window_move (GTK_WINDOW (win), 0, 0); + + /* quit on window close */ + g_signal_connect (G_OBJECT (win), "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + pager = wnck_pager_new (); + + wnck_pager_set_show_all (WNCK_PAGER (pager), show_all); + wnck_pager_set_display_mode (WNCK_PAGER (pager), mode); + wnck_pager_set_orientation (WNCK_PAGER (pager), orientation); + wnck_pager_set_n_rows (WNCK_PAGER (pager), rows); + wnck_pager_set_shadow_type (WNCK_PAGER (pager), GTK_SHADOW_IN); + wnck_pager_set_wrap_on_scroll (WNCK_PAGER (pager), wrap); + + gtk_container_add (GTK_CONTAINER (win), pager); + + gtk_widget_show_all (win); +} + +int +main (int argc, char **argv) +{ + GOptionContext *ctxt; + GtkOrientation orientation; + WnckPagerDisplayMode mode; + WnckScreen *screen; + + ctxt = g_option_context_new (""); + g_option_context_add_main_entries (ctxt, entries, NULL); + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + g_option_context_parse (ctxt, &argc, &argv, NULL); + g_option_context_free (ctxt); + ctxt = NULL; + + gtk_init (&argc, &argv); + + if (rtl) + gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL); + + screen = wnck_screen_get_default (); + + /* because the pager doesn't respond to signals at the moment */ + wnck_screen_force_update (screen); + + if (vertical) + orientation = GTK_ORIENTATION_VERTICAL; + else + orientation = GTK_ORIENTATION_HORIZONTAL; + + if (show_name) + mode = WNCK_PAGER_DISPLAY_NAME; + else + mode = WNCK_PAGER_DISPLAY_CONTENT; + + create_pager_window (orientation, !only_current, mode, n_rows, wrap_on_scroll); + + gtk_main (); + + return 0; +} diff --git a/libwnck/test-selector.c b/libwnck/test-selector.c new file mode 100644 index 0000000..fb27ea3 --- /dev/null +++ b/libwnck/test-selector.c @@ -0,0 +1,75 @@ +/* vim: set sw=2 et: */ + +#include +#include + +static gboolean skip_tasklist = FALSE; + +static GOptionEntry entries[] = { + /* Translators: "tasklist" is the list of running applications (the + * window list) */ + {"skip-tasklist", 's', 0, G_OPTION_ARG_NONE, &skip_tasklist, "Don't show window in tasklist", NULL}, + {NULL } +}; + +int +main (int argc, char **argv) +{ + GOptionContext *ctxt; + WnckScreen *screen; + GtkWidget *win; + GtkWidget *frame; + GtkWidget *selector; + + ctxt = g_option_context_new (""); + g_option_context_add_main_entries (ctxt, entries, NULL); + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + g_option_context_parse (ctxt, &argc, &argv, NULL); + g_option_context_free (ctxt); + ctxt = NULL; + + gtk_init (&argc, &argv); + + screen = wnck_screen_get_default (); + + /* because the pager doesn't respond to signals at the moment */ + wnck_screen_force_update (screen); + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (win), 200, 32); + gtk_window_stick (GTK_WINDOW (win)); + /* wnck_gtk_window_set_dock_type (GTK_WINDOW (win)); */ + + gtk_window_set_title (GTK_WINDOW (win), "Window Selector"); + gtk_window_set_resizable (GTK_WINDOW (win), TRUE); + + /* quit on window close */ + g_signal_connect (G_OBJECT (win), "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + selector = wnck_selector_new (); + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + gtk_container_add (GTK_CONTAINER (win), frame); + + gtk_container_add (GTK_CONTAINER (frame), selector); + + gtk_widget_show (selector); + gtk_widget_show (frame); + + gtk_window_move (GTK_WINDOW (win), 0, 0); + + if (skip_tasklist) + { + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (win), TRUE); + gtk_window_set_keep_above (GTK_WINDOW (win), TRUE); + } + + gtk_widget_show (win); + + gtk_main (); + + return 0; +} diff --git a/libwnck/test-shutdown.c b/libwnck/test-shutdown.c new file mode 100644 index 0000000..0f09d42 --- /dev/null +++ b/libwnck/test-shutdown.c @@ -0,0 +1,61 @@ +/* vim: set sw=2 et: */ + +#include + +static void +on_active_window_changed (WnckScreen *screen, + WnckWindow *previously_active_window, + gpointer data) +{ + WnckWindow *active_window; + + active_window = wnck_screen_get_active_window (screen); + + if (active_window) + g_print ("active: %s\n", wnck_window_get_name (active_window)); + else + g_print ("no active window\n"); +} + +static gboolean +quit_loop (gpointer data) +{ + GMainLoop *loop = data; + g_main_loop_quit (loop); + + return FALSE; +} + +int +main (int argc, + char **argv) +{ + GMainLoop *loop; + WnckScreen *screen; + + gdk_init (&argc, &argv); + + loop = g_main_loop_new (NULL, FALSE); + + while (TRUE) + { + screen = wnck_screen_get_default (); + + g_print ("libwnck is active for 5 seconds; change the active window to get notifications\n"); + g_signal_connect (screen, "active-window-changed", + G_CALLBACK (on_active_window_changed), NULL); + g_timeout_add_seconds (5, quit_loop, loop); + g_main_loop_run (loop); + + g_print ("libwnck is shutting down for 5 seconds; no notification will happen anymore\n"); + wnck_shutdown (); + g_timeout_add_seconds (5, quit_loop, loop); + g_main_loop_run (loop); + + g_print ("libwnck is getting reinitialized...\n"); + } + + g_main_loop_unref (loop); + + return 0; +} diff --git a/libwnck/test-tasklist.c b/libwnck/test-tasklist.c new file mode 100644 index 0000000..6b27f5a --- /dev/null +++ b/libwnck/test-tasklist.c @@ -0,0 +1,165 @@ +/* vim: set sw=2 et: */ + +#include +#include + +static gboolean display_all = FALSE; +static gboolean never_group = FALSE; +static gboolean always_group = FALSE; +static gboolean rtl = FALSE; +static gboolean skip_tasklist = FALSE; +static gboolean transparent = FALSE; +static gboolean vertical = FALSE; +static gint icon_size = WNCK_DEFAULT_MINI_ICON_SIZE; +static gboolean enable_scroll = TRUE; + +static GOptionEntry entries[] = { + {"always-group", 'g', 0, G_OPTION_ARG_NONE, &always_group, "Always group windows", NULL}, + {"never-group", 'n', 0, G_OPTION_ARG_NONE, &never_group, "Never group windows", NULL}, + {"display-all", 'a', 0, G_OPTION_ARG_NONE, &display_all, "Display windows from all workspaces", NULL}, + {"icon-size", 'i', 0, G_OPTION_ARG_INT, &icon_size, "Icon size for tasklist", NULL}, + {"rtl", 'r', 0, G_OPTION_ARG_NONE, &rtl, "Use RTL as default direction", NULL}, + {"skip-tasklist", 's', 0, G_OPTION_ARG_NONE, &skip_tasklist, "Don't show window in tasklist", NULL}, + {"vertical", 'v', 0, G_OPTION_ARG_NONE, &vertical, "Show in vertical mode", NULL}, + {"transparent", 't', 0, G_OPTION_ARG_NONE, &transparent, "Enable Transparency", NULL}, + {"disable-scroll", 'd', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &enable_scroll, "Disable scrolling", NULL}, + {NULL } +}; + +static gboolean +window_draw (GtkWidget *widget, + cairo_t *cr, + gpointer user_data) +{ + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source_rgba (cr, 1., 1., 1., .5); + cairo_fill (cr); + + return FALSE; +} + +static void +window_composited_changed (GtkWidget *widget, + gpointer user_data) +{ + GdkScreen *screen; + gboolean composited; + + screen = gdk_screen_get_default (); + composited = gdk_screen_is_composited (screen); + + gtk_widget_set_app_paintable (widget, composited); +} + +int +main (int argc, char **argv) +{ + GOptionContext *ctxt; + WnckScreen *screen; + GtkWidget *win; + GtkWidget *frame; + GtkWidget *tasklist; + + ctxt = g_option_context_new (""); + g_option_context_add_main_entries (ctxt, entries, NULL); + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + g_option_context_parse (ctxt, &argc, &argv, NULL); + g_option_context_free (ctxt); + ctxt = NULL; + + gtk_init (&argc, &argv); + + if (rtl) + gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL); + + wnck_set_default_mini_icon_size (icon_size); + screen = wnck_screen_get_default (); + + /* because the pager doesn't respond to signals at the moment */ + wnck_screen_force_update (screen); + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_default_size (GTK_WINDOW (win), 200, 100); + gtk_window_stick (GTK_WINDOW (win)); + /* wnck_gtk_window_set_dock_type (GTK_WINDOW (win)); */ + + gtk_window_set_title (GTK_WINDOW (win), "Task List"); + gtk_window_set_resizable (GTK_WINDOW (win), TRUE); + + /* quit on window close */ + g_signal_connect (G_OBJECT (win), "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + tasklist = wnck_tasklist_new (); + + wnck_tasklist_set_include_all_workspaces (WNCK_TASKLIST (tasklist), display_all); + if (always_group) + wnck_tasklist_set_grouping (WNCK_TASKLIST (tasklist), + WNCK_TASKLIST_ALWAYS_GROUP); + else if (never_group) + wnck_tasklist_set_grouping (WNCK_TASKLIST (tasklist), + WNCK_TASKLIST_NEVER_GROUP); + else + wnck_tasklist_set_grouping (WNCK_TASKLIST (tasklist), + WNCK_TASKLIST_AUTO_GROUP); + + wnck_tasklist_set_scroll_enabled (WNCK_TASKLIST (tasklist), enable_scroll); + + wnck_tasklist_set_middle_click_close (WNCK_TASKLIST (tasklist), TRUE); + + wnck_tasklist_set_orientation (WNCK_TASKLIST (tasklist), + (vertical ? GTK_ORIENTATION_VERTICAL : + GTK_ORIENTATION_HORIZONTAL)); + + if (transparent) + { + GdkVisual *visual; + + visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (win)); + + if (visual != NULL) + { + gtk_widget_set_visual (win, visual); + + g_signal_connect (win, "composited-changed", + G_CALLBACK (window_composited_changed), + NULL); + + /* draw even if we are not app-painted. + * this just makes my life a lot easier :) + */ + g_signal_connect (win, "draw", + G_CALLBACK (window_draw), + NULL); + + window_composited_changed (win, NULL); + } + + wnck_tasklist_set_button_relief (WNCK_TASKLIST (tasklist), + GTK_RELIEF_NONE); + } + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + gtk_container_add (GTK_CONTAINER (win), frame); + + gtk_container_add (GTK_CONTAINER (frame), tasklist); + + gtk_widget_show (tasklist); + gtk_widget_show (frame); + + gtk_window_move (GTK_WINDOW (win), 0, 0); + + if (skip_tasklist) + { + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (win), TRUE); + gtk_window_set_keep_above (GTK_WINDOW (win), TRUE); + } + + gtk_widget_show (win); + + gtk_main (); + + return 0; +} diff --git a/libwnck/test-urgent.c b/libwnck/test-urgent.c new file mode 100644 index 0000000..37000b6 --- /dev/null +++ b/libwnck/test-urgent.c @@ -0,0 +1,96 @@ +/* vim: set sw=2 et: */ + +#include + +static void +set_urgent (GtkWidget *window, + gboolean urgent) +{ + GtkWidget *label; + + label = gtk_bin_get_child (GTK_BIN (window)); + + if (urgent) + { + gtk_window_set_urgency_hint (GTK_WINDOW (window), TRUE); + gtk_window_set_title (GTK_WINDOW (window), "Test Window - Urgent"); + gtk_label_set_text (GTK_LABEL (label), "I am urgent!"); + } + else + { + gtk_window_set_urgency_hint (GTK_WINDOW (window), FALSE); + gtk_window_set_title (GTK_WINDOW (window), "Test Window"); + gtk_label_set_text (GTK_LABEL (label), "I'm not urgent."); + } +} + +static gboolean +make_urgent (GtkWidget *widget) +{ + set_urgent (widget, TRUE); + g_object_set_data (G_OBJECT (widget), "wnck-timeout", NULL); + + return FALSE; +} + +static gboolean +focused_in (GtkWidget *widget, + GdkEventFocus *event, + gpointer user_data) +{ + guint id; + + set_urgent (widget, FALSE); + + id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (widget), "wnck-timeout")); + g_object_set_data (G_OBJECT (widget), "wnck-timeout", NULL); + + if (id) + g_source_remove (id); + + return FALSE; +} + +static gboolean +focused_out (GtkWidget *widget, + GdkEventFocus *event, + gpointer user_data) +{ + guint id; + + id = g_timeout_add_seconds (3, (GSourceFunc) make_urgent, widget); + g_object_set_data (G_OBJECT (widget), "wnck-timeout", GUINT_TO_POINTER (id)); + + return FALSE; +} + +int +main (int argc, char **argv) +{ + GtkWidget *win; + GtkWidget *label; + + gtk_init (&argc, &argv); + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + label = gtk_label_new (""); + gtk_container_add (GTK_CONTAINER (win), label); + gtk_window_set_keep_above (GTK_WINDOW (win), TRUE); + gtk_widget_show_all (win); + + g_signal_connect (G_OBJECT (win), "focus-in-event", + G_CALLBACK (focused_in), + NULL); + g_signal_connect (G_OBJECT (win), "focus-out-event", + G_CALLBACK (focused_out), + NULL); + g_signal_connect (G_OBJECT (win), "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + set_urgent (win, FALSE); + + gtk_main (); + + return 0; +} diff --git a/libwnck/test-wnck.c b/libwnck/test-wnck.c new file mode 100644 index 0000000..ffaad59 --- /dev/null +++ b/libwnck/test-wnck.c @@ -0,0 +1,932 @@ +/* vim: set sw=2 et: */ + +#include +#include + +static GtkWidget *global_tree_view; +static GtkTreeModel *global_tree_model; +static guint refill_idle; + +static void active_window_changed_callback (WnckScreen *screen, + WnckWindow *previous_window, + gpointer data); +static void active_workspace_changed_callback (WnckScreen *screen, + WnckWorkspace *previous_workspace, + gpointer data); +static void window_stacking_changed_callback (WnckScreen *screen, + gpointer data); +static void window_opened_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data); +static void window_closed_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data); +static void workspace_created_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data); +static void workspace_destroyed_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data); +static void application_opened_callback (WnckScreen *screen, + WnckApplication *app); +static void application_closed_callback (WnckScreen *screen, + WnckApplication *app); +static void showing_desktop_changed_callback (WnckScreen *screen, + gpointer data); +static void window_name_changed_callback (WnckWindow *window, + gpointer data); +static void window_state_changed_callback (WnckWindow *window, + WnckWindowState changed, + WnckWindowState new, + gpointer data); +static void window_workspace_changed_callback (WnckWindow *window, + gpointer data); +static void window_icon_changed_callback (WnckWindow *window, + gpointer data); +static void window_geometry_changed_callback (WnckWindow *window, + gpointer data); +static void window_class_changed_callback (WnckWindow *window, + gpointer data); +static void window_role_changed_callback (WnckWindow *window, + gpointer data); + +static GtkTreeModel* create_tree_model (void); +static GtkWidget* create_tree_view (void); +static void refill_tree_model (GtkTreeModel *model, + WnckScreen *screen); +static void update_window (GtkTreeModel *model, + WnckWindow *window); +static void queue_refill_model (void); + +static gint icon_size = WNCK_DEFAULT_MINI_ICON_SIZE; + +static GOptionEntry entries[] = { + {"icon-size", 'i', 0, G_OPTION_ARG_INT, &icon_size, "Icon size for tasklist", NULL}, + {NULL } +}; + + +int +main (int argc, char **argv) +{ + WnckScreen *screen; + GtkWidget *sw; + GtkWidget *win; + GOptionContext *ctxt; + + ctxt = g_option_context_new (""); + g_option_context_add_main_entries (ctxt, entries, NULL); + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + g_option_context_parse (ctxt, &argc, &argv, NULL); + g_option_context_free (ctxt); + + wnck_set_default_mini_icon_size (icon_size); + + gtk_init (&argc, &argv); + + screen = wnck_screen_get (0); + + g_signal_connect (G_OBJECT (screen), "active_window_changed", + G_CALLBACK (active_window_changed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "active_workspace_changed", + G_CALLBACK (active_workspace_changed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "window_stacking_changed", + G_CALLBACK (window_stacking_changed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "window_opened", + G_CALLBACK (window_opened_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "window_closed", + G_CALLBACK (window_closed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "workspace_created", + G_CALLBACK (workspace_created_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "workspace_destroyed", + G_CALLBACK (workspace_destroyed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "application_opened", + G_CALLBACK (application_opened_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "application_closed", + G_CALLBACK (application_closed_callback), + NULL); + g_signal_connect (G_OBJECT (screen), "showing_desktop_changed", + G_CALLBACK (showing_desktop_changed_callback), + NULL); + + global_tree_model = create_tree_model (); + global_tree_view = create_tree_view (); + + gtk_tree_view_set_model (GTK_TREE_VIEW (global_tree_view), + global_tree_model); + + win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + gtk_window_set_title (GTK_WINDOW (win), "Window List"); + + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + + gtk_container_add (GTK_CONTAINER (sw), global_tree_view); + gtk_container_add (GTK_CONTAINER (win), sw); + + gtk_window_set_default_size (GTK_WINDOW (win), 650, 550); + + /* quit on window close */ + g_signal_connect (G_OBJECT (win), "destroy", + G_CALLBACK (gtk_main_quit), + NULL); + + gtk_widget_show_all (win); + + gtk_main (); + + return 0; +} + +static void +active_window_changed_callback (WnckScreen *screen, + WnckWindow *previous_window, + gpointer data) +{ + WnckWindow *window; + + g_print ("Active window changed\n"); + + window = wnck_screen_get_active_window (screen); + + if (window) + update_window (global_tree_model, window); +} + +static void +active_workspace_changed_callback (WnckScreen *screen, + WnckWorkspace *previous_workspace, + gpointer data) +{ + g_print ("Active workspace changed\n"); +} + +static void +window_stacking_changed_callback (WnckScreen *screen, + gpointer data) +{ + g_print ("Stacking changed\n"); +} + +static void +window_opened_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data) +{ + g_print ("Window '%s' opened (pid = %d, session_id = %s, role = %s)\n", + wnck_window_get_name (window), + wnck_window_get_pid (window), + wnck_window_get_session_id (window) ? + wnck_window_get_session_id (window) : "none", + wnck_window_get_role (window) ? + wnck_window_get_role (window) : "none"); + + g_signal_connect (G_OBJECT (window), "name_changed", + G_CALLBACK (window_name_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "state_changed", + G_CALLBACK (window_state_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "workspace_changed", + G_CALLBACK (window_workspace_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "icon_changed", + G_CALLBACK (window_icon_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "geometry_changed", + G_CALLBACK (window_geometry_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "class_changed", + G_CALLBACK (window_class_changed_callback), + NULL); + g_signal_connect (G_OBJECT (window), "role_changed", + G_CALLBACK (window_role_changed_callback), + NULL); + + queue_refill_model (); +} + +static void +window_closed_callback (WnckScreen *screen, + WnckWindow *window, + gpointer data) +{ + g_print ("Window '%s' closed\n", + wnck_window_get_name (window)); + + queue_refill_model (); +} + +static void +workspace_created_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data) +{ + g_print ("Workspace created\n"); +} + +static void +workspace_destroyed_callback (WnckScreen *screen, + WnckWorkspace *space, + gpointer data) +{ + g_print ("Workspace destroyed\n"); +} + +static void +application_opened_callback (WnckScreen *screen, + WnckApplication *app) +{ + g_print ("Application opened\n"); + queue_refill_model (); +} + +static void +application_closed_callback (WnckScreen *screen, + WnckApplication *app) +{ + g_print ("Application closed\n"); + queue_refill_model (); +} + +static void +showing_desktop_changed_callback (WnckScreen *screen, + gpointer data) +{ + g_print ("Showing desktop now = %d\n", + wnck_screen_get_showing_desktop (screen)); +} + +static void +window_name_changed_callback (WnckWindow *window, + gpointer data) +{ + g_print ("Name changed on window '%s'\n", + wnck_window_get_name (window)); + + update_window (global_tree_model, window); +} + +static void +window_state_changed_callback (WnckWindow *window, + WnckWindowState changed, + WnckWindowState new, + gpointer data) +{ + g_print ("State changed on window '%s'\n", + wnck_window_get_name (window)); + + if (changed & WNCK_WINDOW_STATE_MINIMIZED) + g_print (" minimized = %d\n", wnck_window_is_minimized (window)); + + if (changed & WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY) + g_print (" maximized horiz = %d\n", wnck_window_is_maximized_horizontally (window)); + + if (changed & WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY) + g_print (" maximized vert = %d\n", wnck_window_is_maximized_vertically (window)); + + if (changed & WNCK_WINDOW_STATE_SHADED) + g_print (" shaded = %d\n", wnck_window_is_shaded (window)); + + if (changed & WNCK_WINDOW_STATE_SKIP_PAGER) + g_print (" skip pager = %d\n", wnck_window_is_skip_pager (window)); + + if (changed & WNCK_WINDOW_STATE_SKIP_TASKLIST) + g_print (" skip tasklist = %d\n", wnck_window_is_skip_tasklist (window)); + + if (changed & WNCK_WINDOW_STATE_STICKY) + g_print (" sticky = %d\n", wnck_window_is_sticky (window)); + + if (changed & WNCK_WINDOW_STATE_FULLSCREEN) + g_print (" fullscreen = %d\n", wnck_window_is_fullscreen (window)); + + g_assert ( ((new & WNCK_WINDOW_STATE_MINIMIZED) != 0) == + wnck_window_is_minimized (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY) != 0) == + wnck_window_is_maximized_horizontally (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY) != 0) == + wnck_window_is_maximized_vertically (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_SHADED) != 0) == + wnck_window_is_shaded (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_SKIP_PAGER) != 0) == + wnck_window_is_skip_pager (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_SKIP_TASKLIST) != 0) == + wnck_window_is_skip_tasklist (window) ); + g_assert ( ((new & WNCK_WINDOW_STATE_STICKY) != 0) == + wnck_window_is_sticky (window) ); + + update_window (global_tree_model, window); +} + +static void +window_workspace_changed_callback (WnckWindow *window, + gpointer data) +{ + WnckWorkspace *space; + + space = wnck_window_get_workspace (window); + + if (space) + g_print ("Workspace changed on window '%s' to %d\n", + wnck_window_get_name (window), + wnck_workspace_get_number (space)); + else + g_print ("Window '%s' is now pinned to all workspaces\n", + wnck_window_get_name (window)); + + update_window (global_tree_model, window); +} + +static void +window_icon_changed_callback (WnckWindow *window, + gpointer data) +{ + g_print ("Icon changed on window '%s'\n", + wnck_window_get_name (window)); + + update_window (global_tree_model, window); +} + +static void +window_geometry_changed_callback (WnckWindow *window, + gpointer data) +{ + int x, y, width, height; + + wnck_window_get_geometry (window, &x, &y, &width, &height); + + g_print ("Geometry changed on window '%s': %d,%d %d x %d\n", + wnck_window_get_name (window), x, y, width, height); +} + +static void +window_class_changed_callback (WnckWindow *window, + gpointer data) +{ + const char *group_name; + const char *instance_name; + + group_name = wnck_window_get_class_group_name (window); + instance_name = wnck_window_get_class_instance_name (window); + + g_print ("Class changed on window '%s': %s,%s\n", + wnck_window_get_name (window), group_name, instance_name); +} + +static void +window_role_changed_callback (WnckWindow *window, + gpointer data) +{ + const char *role; + + role = wnck_window_get_role (window); + + g_print ("Role changed on window '%s': %s\n", + wnck_window_get_name (window), role); +} + +static GtkTreeModel* +create_tree_model (void) +{ + GtkListStore *store; + + store = gtk_list_store_new (1, WNCK_TYPE_WINDOW); + + return GTK_TREE_MODEL (store); +} + +static void +refill_tree_model (GtkTreeModel *model, + WnckScreen *screen) +{ + GList *tmp; + + gtk_list_store_clear (GTK_LIST_STORE (model)); + + tmp = wnck_screen_get_windows (screen); + while (tmp != NULL) + { + GtkTreeIter iter; + WnckWindow *window = tmp->data; + + gtk_list_store_append (GTK_LIST_STORE (model), &iter); + gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, window, -1); + + if (wnck_window_is_active (window)) + { + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (global_tree_view)); + + gtk_tree_selection_unselect_all (selection); + + gtk_tree_selection_select_iter (selection, &iter); + } + + tmp = tmp->next; + } + + gtk_tree_view_columns_autosize (GTK_TREE_VIEW (global_tree_view)); +} + +static void +update_window (GtkTreeModel *model, + WnckWindow *window) +{ + GtkTreeIter iter; + GList *windows; + int i; + + /* The trick here is to find the right row, we assume + * the screen and the model are in sync, unless we have a + * model refill queued, in which case they aren't and we'll update + * this window in the idle queue anyhow. + */ + if (refill_idle != 0) + return; + + windows = wnck_screen_get_windows (wnck_window_get_screen (window)); + + i = g_list_index (windows, window); + + g_return_if_fail (i >= 0); + + if (gtk_tree_model_iter_nth_child (model, &iter, NULL, i)) + { + /* Reset the list store value to trigger a recompute */ + gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, window, -1); + + if (wnck_window_is_active (window)) + { + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (global_tree_view)); + + gtk_tree_selection_unselect_all (selection); + + gtk_tree_selection_select_iter (selection, &iter); + } + } + else + g_warning ("Tree model has no row %d", i); +} + +static WnckWindow* +get_window (GtkTreeModel *model, + GtkTreeIter *iter) +{ + WnckWindow *window; + + gtk_tree_model_get (model, iter, + 0, &window, + -1); + + /* window may be NULL after we append to the list store and + * before we set the value with gtk_list_store_set() + */ + if (window) + { + /* we know the model and screen are still holding a reference, + * so cheat a bit + */ + g_object_unref (G_OBJECT (window)); + } + + return window; +} + +static void +icon_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + + window = get_window (model, iter); + if (window == NULL) + return; + + g_object_set (GTK_CELL_RENDERER (cell), + "pixbuf", wnck_window_get_mini_icon (window), + NULL); +} + +static void +title_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + + window = get_window (model, iter); + if (window == NULL) + return; + + g_object_set (GTK_CELL_RENDERER (cell), + "text", wnck_window_get_name (window), + NULL); +} + +static void +workspace_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + WnckWorkspace *space; + char *name; + + window = get_window (model, iter); + if (window == NULL) + return; + + space = wnck_window_get_workspace (window); + + if (space) + name = g_strdup_printf ("%d", wnck_workspace_get_number (space)); + else if (wnck_window_is_pinned (window)) + name = g_strdup ("all"); + else + name = g_strdup ("none"); + + g_object_set (GTK_CELL_RENDERER (cell), + "text", name, + NULL); + + g_free (name); +} + +static void +pid_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + int pid; + char *name; + + window = get_window (model, iter); + if (window == NULL) + return; + + pid = wnck_window_get_pid (window); + + if (pid != 0) + name = g_strdup_printf ("%d", pid); + else + name = g_strdup ("not set"); + + g_object_set (GTK_CELL_RENDERER (cell), + "text", name, + NULL); + + g_free (name); +} + +static void +shaded_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + + window = get_window (model, iter); + if (window == NULL) + return; + + gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell), + wnck_window_is_shaded (window)); +} + +static void +shaded_toggled_callback (GtkCellRendererToggle *cell, + char *path_string, + gpointer data) +{ + GtkTreeView *tree_view = GTK_TREE_VIEW (data); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + GtkTreePath *path = gtk_tree_path_new_from_string (path_string); + GtkTreeIter iter; + WnckWindow *window; + + gtk_tree_model_get_iter (model, &iter, path); + window = get_window (model, &iter); + + if (wnck_window_is_shaded (window)) + wnck_window_unshade (window); + else + wnck_window_shade (window); + + gtk_tree_path_free (path); +} + +static void +minimized_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + + window = get_window (model, iter); + if (window == NULL) + return; + + + gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell), + wnck_window_is_minimized (window)); +} + +static void +minimized_toggled_callback (GtkCellRendererToggle *cell, + char *path_string, + gpointer data) +{ + GtkTreeView *tree_view = GTK_TREE_VIEW (data); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + GtkTreePath *path = gtk_tree_path_new_from_string (path_string); + GtkTreeIter iter; + WnckWindow *window; + + gtk_tree_model_get_iter (model, &iter, path); + window = get_window (model, &iter); + + if (wnck_window_is_minimized (window)) + /* The toggled callback will only be called in reaction to user + * button presses or key presses, so gtk_get_current_event_time() + * should be okay here. + */ + wnck_window_unminimize (window, gtk_get_current_event_time ()); + else + wnck_window_minimize (window); + + gtk_tree_path_free (path); +} + +static void +maximized_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + + window = get_window (model, iter); + if (window == NULL) + return; + + + gtk_cell_renderer_toggle_set_active (GTK_CELL_RENDERER_TOGGLE (cell), + wnck_window_is_maximized (window)); +} + +static void +maximized_toggled_callback (GtkCellRendererToggle *cell, + char *path_string, + gpointer data) +{ + GtkTreeView *tree_view = GTK_TREE_VIEW (data); + GtkTreeModel *model = gtk_tree_view_get_model (tree_view); + GtkTreePath *path = gtk_tree_path_new_from_string (path_string); + GtkTreeIter iter; + WnckWindow *window; + + gtk_tree_model_get_iter (model, &iter, path); + window = get_window (model, &iter); + + if (wnck_window_is_maximized (window)) + wnck_window_unmaximize (window); + else + wnck_window_maximize (window); + + gtk_tree_path_free (path); +} + +static void +session_id_set_func (GtkTreeViewColumn *tree_column, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + WnckWindow *window; + const char *id; + + window = get_window (model, iter); + if (window == NULL) + return; + + id = wnck_window_get_session_id_utf8 (window); + + g_object_set (GTK_CELL_RENDERER (cell), + "text", id ? id : "not session managed", + NULL); +} + +static gboolean +selection_func (GtkTreeSelection *selection, + GtkTreeModel *model, + GtkTreePath *path, + gboolean currently_selected, + gpointer data) +{ + GtkTreeIter iter; + WnckWindow *window; + + /* Kind of some hack action here. If you try to select a row that's + * not the active window, we ask the WM to make that window active + * as a side effect. But we don't actually allow selecting anything + * that isn't already active. Then, in the active window callback we + * select the newly-active window + */ + + gtk_tree_model_get_iter (model, &iter, path); + + window = get_window (model, &iter); + if (window == NULL) + return FALSE; + + if (currently_selected) + { + /* Trying to unselect, not allowed if we are the active window */ + if (wnck_window_is_active (window)) + return FALSE; + else + return TRUE; + } + else + { + if (wnck_window_is_active (window)) + return TRUE; + else + { + /* This should only be called in reaction to user button + * presses or key presses (I hope), so + * gtk_get_current_event_time() should be okay here. + */ + wnck_window_activate (window, gtk_get_current_event_time ()); + return FALSE; + } + } +} + +static GtkWidget* +create_tree_view (void) +{ + GtkWidget *tree_view; + GtkCellRenderer *cell_renderer; + GtkTreeViewColumn *column; + GtkTreeSelection *selection; + + tree_view = gtk_tree_view_new (); + + /* The icon and title are in the same column, so pack + * two cell renderers into that column + */ + column = gtk_tree_view_column_new (); + gtk_tree_view_column_set_title (column, "Window"); + + cell_renderer = gtk_cell_renderer_pixbuf_new (); + g_object_set (G_OBJECT (cell_renderer), + "xpad", 2, + NULL); + gtk_tree_view_column_pack_start (column, + cell_renderer, + FALSE); + gtk_tree_view_column_set_cell_data_func (column, cell_renderer, + icon_set_func, NULL, NULL); + cell_renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_column_pack_start (column, + cell_renderer, + TRUE); + gtk_tree_view_column_set_cell_data_func (column, cell_renderer, + title_set_func, NULL, NULL); + + gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), + column); + + /* Then create a workspace column, only one renderer in this column + * so we get to use insert_column convenience function + */ + cell_renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "Workspace", + cell_renderer, + workspace_set_func, + NULL, + NULL); + + /* Process ID */ + cell_renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "PID", + cell_renderer, + pid_set_func, + NULL, + NULL); + + /* Shaded checkbox */ + cell_renderer = gtk_cell_renderer_toggle_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "Shaded", + cell_renderer, + shaded_set_func, + NULL, + NULL); + g_signal_connect (G_OBJECT (cell_renderer), "toggled", + G_CALLBACK (shaded_toggled_callback), + tree_view); + + /* Minimized checkbox */ + cell_renderer = gtk_cell_renderer_toggle_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "Minimized", + cell_renderer, + minimized_set_func, + NULL, + NULL); + g_signal_connect (G_OBJECT (cell_renderer), "toggled", + G_CALLBACK (minimized_toggled_callback), + tree_view); + + /* Maximized checkbox */ + cell_renderer = gtk_cell_renderer_toggle_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "Maximized", + cell_renderer, + maximized_set_func, + NULL, + NULL); + g_signal_connect (G_OBJECT (cell_renderer), "toggled", + G_CALLBACK (maximized_toggled_callback), + tree_view); + + /* Session ID */ + cell_renderer = gtk_cell_renderer_text_new (); + gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (tree_view), + -1, /* append */ + "Session ID", + cell_renderer, + session_id_set_func, + NULL, + NULL); + + /* The selection will track the active window, so we need to + * handle it with a custom function + */ + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); + gtk_tree_selection_set_select_function (selection, selection_func, NULL, NULL); + return tree_view; +} + +static gboolean +do_refill_model (gpointer data) +{ + refill_idle = 0; + + refill_tree_model (global_tree_model, + wnck_screen_get (0)); + + return FALSE; +} + +static void +queue_refill_model (void) +{ + if (refill_idle != 0) + return; + + /* Don't keep any stale references */ + gtk_list_store_clear (GTK_LIST_STORE (global_tree_model)); + + refill_idle = g_idle_add (do_refill_model, NULL); +} diff --git a/libwnck/util.c b/libwnck/util.c new file mode 100644 index 0000000..d90f585 --- /dev/null +++ b/libwnck/util.c @@ -0,0 +1,871 @@ +/* util header */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include "util.h" +#include "xutils.h" +#include "private.h" +#include +#include +#ifdef HAVE_XRES +#include +#endif + +/** + * SECTION:resource + * @short_description: reading resource usage of X clients. + * @see_also: wnck_window_get_xid(), wnck_application_get_xid(), wnck_window_get_pid(), wnck_application_get_pid() + * @stability: Unstable + * + * libwnck provides an easy-to-use interface to the XRes X server extension to + * read resource usage of X clients, which can be defined either by the X + * window ID of one of their windows or by the process ID of their process. + */ + +/** + * SECTION:misc + * @short_description: other additional features. + * @stability: Unstable + * + * These functions are utility functions providing some additional features to + * libwnck users. + */ + +/** + * SECTION:icons + * @short_description: icons related functions. + * @stability: Unstable + * + * These functions are utility functions to manage icons for #WnckWindow and + * #WnckApplication. + */ + +typedef enum +{ + WNCK_EXT_UNKNOWN = 0, + WNCK_EXT_FOUND = 1, + WNCK_EXT_MISSING = 2 +} WnckExtStatus; + + +#if 0 +/* useful for debugging */ +static void +_wnck_print_resource_usage (WnckResourceUsage *usage) +{ + if (!usage) + return; + + g_print ("\twindows : %d\n" + "\tGCs : %d\n" + "\tfonts : %d\n" + "\tpixmaps : %d\n" + "\tpictures : %d\n" + "\tglyphsets : %d\n" + "\tcolormaps : %d\n" + "\tpassive grabs : %d\n" + "\tcursors : %d\n" + "\tunknowns : %d\n" + "\tpixmap bytes : %ld\n" + "\ttotal bytes : ~%ld\n", + usage->n_windows, + usage->n_gcs, + usage->n_fonts, + usage->n_pixmaps, + usage->n_pictures, + usage->n_glyphsets, + usage->n_colormap_entries, + usage->n_passive_grabs, + usage->n_cursors, + usage->n_other, + usage->pixmap_bytes, + usage->total_bytes_estimate); +} +#endif + +static WnckExtStatus +wnck_init_resource_usage (GdkDisplay *gdisplay) +{ + WnckExtStatus status; + + status = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (gdisplay), + "wnck-xres-status")); + + if (status == WNCK_EXT_UNKNOWN) + { +#ifdef HAVE_XRES + Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdisplay); + int event, error; + + if (!XResQueryExtension (xdisplay, &event, &error)) + status = WNCK_EXT_MISSING; + else + status = WNCK_EXT_FOUND; +#else + status = WNCK_EXT_MISSING; +#endif + + g_object_set_data (G_OBJECT (gdisplay), + "wnck-xres-status", + GINT_TO_POINTER (status)); + } + + g_assert (status != WNCK_EXT_UNKNOWN); + + return status; +} + +/** + * wnck_xid_read_resource_usage: + * @gdk_display: a GdkDisplay. + * @xid: an X window ID. + * @usage: return location for the X resource usage of the application owning + * the X window ID @xid. + * + * Looks for the X resource usage of the application owning the X window ID + * @xid on display @gdisplay. If no resource usage can be found, then all + * fields of @usage are set to 0. + * + * To properly work, this function requires the XRes extension on the X server. + * + * Since: 2.6 + */ +void +wnck_xid_read_resource_usage (GdkDisplay *gdisplay, + gulong xid, + WnckResourceUsage *usage) +{ + g_return_if_fail (usage != NULL); + + memset (usage, '\0', sizeof (*usage)); + + if (wnck_init_resource_usage (gdisplay) == WNCK_EXT_MISSING) + return; + +#ifdef HAVE_XRES + { + Display *xdisplay; + XResType *types; + int n_types; + unsigned long pixmap_bytes; + int i; + Atom pixmap_atom; + Atom window_atom; + Atom gc_atom; + Atom picture_atom; + Atom glyphset_atom; + Atom font_atom; + Atom colormap_entry_atom; + Atom passive_grab_atom; + Atom cursor_atom; + + types = NULL; + n_types = 0; + pixmap_bytes = 0; + + xdisplay = GDK_DISPLAY_XDISPLAY (gdisplay); + + _wnck_error_trap_push (xdisplay); + + XResQueryClientResources (xdisplay, + xid, &n_types, + &types); + + XResQueryClientPixmapBytes (xdisplay, + xid, &pixmap_bytes); + _wnck_error_trap_pop (xdisplay); + + usage->pixmap_bytes = pixmap_bytes; + + pixmap_atom = _wnck_atom_get ("PIXMAP"); + window_atom = _wnck_atom_get ("WINDOW"); + gc_atom = _wnck_atom_get ("GC"); + font_atom = _wnck_atom_get ("FONT"); + glyphset_atom = _wnck_atom_get ("GLYPHSET"); + picture_atom = _wnck_atom_get ("PICTURE"); + colormap_entry_atom = _wnck_atom_get ("COLORMAP ENTRY"); + passive_grab_atom = _wnck_atom_get ("PASSIVE GRAB"); + cursor_atom = _wnck_atom_get ("CURSOR"); + + i = 0; + while (i < n_types) + { + guint t = types[i].resource_type; + + if (t == pixmap_atom) + usage->n_pixmaps += types[i].count; + else if (t == window_atom) + usage->n_windows += types[i].count; + else if (t == gc_atom) + usage->n_gcs += types[i].count; + else if (t == picture_atom) + usage->n_pictures += types[i].count; + else if (t == glyphset_atom) + usage->n_glyphsets += types[i].count; + else if (t == font_atom) + usage->n_fonts += types[i].count; + else if (t == colormap_entry_atom) + usage->n_colormap_entries += types[i].count; + else if (t == passive_grab_atom) + usage->n_passive_grabs += types[i].count; + else if (t == cursor_atom) + usage->n_cursors += types[i].count; + else + usage->n_other += types[i].count; + + ++i; + } + + XFree(types); + + usage->total_bytes_estimate = usage->pixmap_bytes; + + /* FIXME look in the X server source and come up with better + * answers here. Ideally we change XRes to return a number + * like this since it can do things like divide the cost of + * a shared resource among those sharing it. + */ + usage->total_bytes_estimate += usage->n_windows * 24; + usage->total_bytes_estimate += usage->n_gcs * 24; + usage->total_bytes_estimate += usage->n_pictures * 24; + usage->total_bytes_estimate += usage->n_glyphsets * 24; + usage->total_bytes_estimate += usage->n_fonts * 1024; + usage->total_bytes_estimate += usage->n_colormap_entries * 24; + usage->total_bytes_estimate += usage->n_passive_grabs * 24; + usage->total_bytes_estimate += usage->n_cursors * 24; + usage->total_bytes_estimate += usage->n_other * 24; + } +#else /* HAVE_XRES */ + g_assert_not_reached (); +#endif /* HAVE_XRES */ +} + +#ifdef HAVE_XRES +static void +wnck_pid_read_resource_usage_free_hash (gpointer data) +{ + g_slice_free (gulong, data); +} + +static guint +wnck_gulong_hash (gconstpointer v) +{ + /* FIXME: this is obvioulsy wrong, but nearly 100% of the time, the gulong + * only contains guint values */ + return *(const guint *) v; +} + +static gboolean +wnck_gulong_equal (gconstpointer a, + gconstpointer b) +{ + return *((const gulong *) a) == *((const gulong *) b); +} + +static gulong +wnck_check_window_for_pid (Screen *screen, + Window win, + XID match_xid, + XID mask) +{ + if ((win & ~mask) == match_xid) { + return _wnck_get_pid (screen, win); + } + + return 0; +} + +static void +wnck_find_pid_for_resource_r (Display *xdisplay, + Screen *screen, + Window win_top, + XID match_xid, + XID mask, + gulong *xid, + gulong *pid) +{ + Status qtres; + int err; + Window dummy; + Window *children; + guint n_children; + guint i; + gulong found_pid = 0; + + while (gtk_events_pending ()) + gtk_main_iteration (); + + found_pid = wnck_check_window_for_pid (screen, win_top, match_xid, mask); + if (found_pid != 0) + { + *xid = win_top; + *pid = found_pid; + } + + _wnck_error_trap_push (xdisplay); + qtres = XQueryTree (xdisplay, win_top, &dummy, &dummy, + &children, &n_children); + err = _wnck_error_trap_pop (xdisplay); + + if (!qtres || err != Success) + return; + + for (i = 0; i < n_children; i++) + { + wnck_find_pid_for_resource_r (xdisplay, screen, children[i], + match_xid, mask, xid, pid); + + if (*pid != 0) + break; + } + + if (children) + XFree ((char *)children); +} + +struct xresclient_state +{ + XResClient *clients; + int n_clients; + int next; + Display *xdisplay; + GHashTable *hashtable_pid; +}; + +static struct xresclient_state xres_state = { NULL, 0, -1, NULL, NULL }; +static guint xres_idleid = 0; +static GHashTable *xres_hashtable = NULL; +static time_t start_update = 0; +static time_t end_update = 0; +static guint xres_removeid = 0; + +static void +wnck_pid_read_resource_usage_xres_state_free (gpointer data) +{ + struct xresclient_state *state; + + state = (struct xresclient_state *) data; + + if (state->clients) + XFree (state->clients); + state->clients = NULL; + + state->n_clients = 0; + state->next = -1; + state->xdisplay = NULL; + + if (state->hashtable_pid) + g_hash_table_destroy (state->hashtable_pid); + state->hashtable_pid = NULL; +} + +static gboolean +wnck_pid_read_resource_usage_fill_cache (struct xresclient_state *state) +{ + int i; + gulong pid; + gulong xid; + XID match_xid; + + if (state->next >= state->n_clients) + { + if (xres_hashtable) + g_hash_table_destroy (xres_hashtable); + xres_hashtable = state->hashtable_pid; + state->hashtable_pid = NULL; + + time (&end_update); + + xres_idleid = 0; + return FALSE; + } + + match_xid = (state->clients[state->next].resource_base & + ~state->clients[state->next].resource_mask); + + pid = 0; + xid = 0; + + for (i = 0; i < ScreenCount (state->xdisplay); i++) + { + Screen *screen; + Window root; + + screen = ScreenOfDisplay (state->xdisplay, i); + root = RootWindow (state->xdisplay, i); + + if (root == None) + continue; + + wnck_find_pid_for_resource_r (state->xdisplay, screen, root, match_xid, + state->clients[state->next].resource_mask, + &xid, &pid); + + if (pid != 0 && xid != 0) + break; + } + + if (pid != 0 && xid != 0) + { + gulong *key; + gulong *value; + + key = g_slice_new (gulong); + value = g_slice_new (gulong); + *key = pid; + *value = xid; + g_hash_table_insert (state->hashtable_pid, key, value); + } + + state->next++; + + return TRUE; +} + +static void +wnck_pid_read_resource_usage_start_build_cache (GdkDisplay *gdisplay) +{ + Display *xdisplay; + int err; + + if (xres_idleid != 0) + return; + + time (&start_update); + + xdisplay = GDK_DISPLAY_XDISPLAY (gdisplay); + + _wnck_error_trap_push (xdisplay); + XResQueryClients (xdisplay, &xres_state.n_clients, &xres_state.clients); + err = _wnck_error_trap_pop (xdisplay); + + if (err != Success) + return; + + xres_state.next = (xres_state.n_clients > 0) ? 0 : -1; + xres_state.xdisplay = xdisplay; + xres_state.hashtable_pid = g_hash_table_new_full ( + wnck_gulong_hash, + wnck_gulong_equal, + wnck_pid_read_resource_usage_free_hash, + wnck_pid_read_resource_usage_free_hash); + + xres_idleid = g_idle_add_full ( + G_PRIORITY_HIGH_IDLE, + (GSourceFunc) wnck_pid_read_resource_usage_fill_cache, + &xres_state, wnck_pid_read_resource_usage_xres_state_free); +} + +static gboolean +wnck_pid_read_resource_usage_destroy_hash_table (gpointer data) +{ + xres_removeid = 0; + + if (xres_hashtable) + g_hash_table_destroy (xres_hashtable); + + xres_hashtable = NULL; + + return FALSE; +} + +#define XRES_UPDATE_RATE_SEC 30 +static gboolean +wnck_pid_read_resource_usage_from_cache (GdkDisplay *gdisplay, + gulong pid, + WnckResourceUsage *usage) +{ + gboolean need_rebuild; + gulong *xid_p; + int cache_validity; + + if (end_update == 0) + time (&end_update); + + cache_validity = MAX (XRES_UPDATE_RATE_SEC, (end_update - start_update) * 2); + + /* we rebuild the cache if it was never built or if it's old */ + need_rebuild = (xres_hashtable == NULL || + (end_update < time (NULL) - cache_validity)); + + if (xres_hashtable) + { + /* clear the cache after quite some time, because it might not be used + * anymore */ + if (xres_removeid != 0) + g_source_remove (xres_removeid); + xres_removeid = g_timeout_add_seconds (cache_validity * 2, + wnck_pid_read_resource_usage_destroy_hash_table, + NULL); + } + + if (need_rebuild) + wnck_pid_read_resource_usage_start_build_cache (gdisplay); + + if (xres_hashtable) + xid_p = g_hash_table_lookup (xres_hashtable, &pid); + else + xid_p = NULL; + + if (xid_p) + { + wnck_xid_read_resource_usage (gdisplay, *xid_p, usage); + return TRUE; + } + + return FALSE; +} + +static void +wnck_pid_read_resource_usage_no_cache (GdkDisplay *gdisplay, + gulong pid, + WnckResourceUsage *usage) +{ + Display *xdisplay; + int i; + + xdisplay = GDK_DISPLAY_XDISPLAY (gdisplay); + + i = 0; + while (i < ScreenCount (xdisplay)) + { + WnckScreen *screen; + GList *windows; + GList *tmp; + + screen = wnck_screen_get (i); + + g_assert (screen != NULL); + + windows = wnck_screen_get_windows (screen); + tmp = windows; + while (tmp != NULL) + { + if (wnck_window_get_pid (tmp->data) == (int) pid) + { + wnck_xid_read_resource_usage (gdisplay, + wnck_window_get_xid (tmp->data), + usage); + + /* stop on first window found */ + return; + } + + tmp = tmp->next; + } + + ++i; + } +} +#endif /* HAVE_XRES */ + +/** + * wnck_pid_read_resource_usage: + * @gdk_display: a GdkDisplay. + * @pid: a process ID. + * @usage: return location for the X resource usage of the application with + * process ID @pid. + * + * Looks for the X resource usage of the application with process ID @pid on + * display @gdisplay. If no resource usage can be found, then all fields of + * @usage are set to 0. + * + * In order to find the resource usage of an application that does not have an + * X window visible to libwnck (panel applets do not have any toplevel windows, + * for example), wnck_pid_read_resource_usage() walks through the whole tree of + * X windows. Since this walk is expensive in CPU, a cache is created. This + * cache is updated in the background. This means there is a non-null + * probability that no resource usage will be found for an application, even if + * it is an X client. If this happens, calling wnck_pid_read_resource_usage() + * again after a few seconds should work. + * + * To properly work, this function requires the XRes extension on the X server. + * + * Since: 2.6 + */ +void +wnck_pid_read_resource_usage (GdkDisplay *gdisplay, + gulong pid, + WnckResourceUsage *usage) +{ + g_return_if_fail (usage != NULL); + + memset (usage, '\0', sizeof (*usage)); + + if (wnck_init_resource_usage (gdisplay) == WNCK_EXT_MISSING) + return; + +#ifdef HAVE_XRES + if (!wnck_pid_read_resource_usage_from_cache (gdisplay, pid, usage)) + /* the cache might not be built, might be outdated or might not contain + * data for a new X client, so try to fallback to something else */ + wnck_pid_read_resource_usage_no_cache (gdisplay, pid, usage); +#endif /* HAVE_XRES */ +} + +static WnckClientType client_type = 0; + +/** + * wnck_set_client_type: + * @ewmh_sourceindication_client_type: a role for the client. + * + * Sets the role of the libwnck user. + * + * The default role is %WNCK_CLIENT_TYPE_APPLICATION. Therefore, for + * applications providing some window management features, like pagers or + * tasklists, it is important to set the role to %WNCK_CLIENT_TYPE_PAGER for + * libwnck to properly work. + * + * Since: 2.14 + */ +void +wnck_set_client_type (WnckClientType ewmh_sourceindication_client_type) +{ + /* Clients constantly switching types makes no sense; this should only be + * set once. + */ + if (client_type != 0) + g_critical ("wnck_set_client_type got called multiple times.\n"); + else + client_type = ewmh_sourceindication_client_type; +} + +WnckClientType +_wnck_get_client_type (void) +{ + /* If the type hasn't been set yet, use the default--treat it as a + * normal application. + */ + if (client_type == 0) + client_type = WNCK_CLIENT_TYPE_APPLICATION; + + return client_type; +} + +static gsize default_icon_size = WNCK_DEFAULT_ICON_SIZE; + +/** + * wnck_set_default_icon_size: + * @size: the default size for windows and application standard icons. + * + * The default main icon size is %WNCK_DEFAULT_ICON_SIZE. This function allows + * to change this value. + * + * Since: 2.4.6 + */ +void +wnck_set_default_icon_size (gsize size) +{ + default_icon_size = size; +} + +gsize +_wnck_get_default_icon_size (void) +{ + return default_icon_size; +} + +static gsize default_mini_icon_size = WNCK_DEFAULT_MINI_ICON_SIZE; + +/** + * wnck_set_default_mini_icon_size: + * @size: the default size for windows and application mini icons. + * + * The default main icon size is %WNCK_DEFAULT_MINI_ICON_SIZE. This function + * allows to change this value. + * + * Since: 2.4.6 + */ +void +wnck_set_default_mini_icon_size (gsize size) +{ + int default_screen; + WnckScreen *screen; + GList *l; + + default_mini_icon_size = size; + + default_screen = DefaultScreen (_wnck_get_default_display ()); + screen = _wnck_screen_get_existing (default_screen); + + if (WNCK_IS_SCREEN (screen)) + { + /* Make applications and icons to reload their icons */ + for (l = wnck_screen_get_windows (screen); l; l = l->next) + { + WnckWindow *window = WNCK_WINDOW (l->data); + WnckApplication *application = wnck_window_get_application (window); + + _wnck_window_load_icons (window); + + if (WNCK_IS_APPLICATION (application)) + _wnck_application_load_icons (application); + } + } +} + +gsize +_wnck_get_default_mini_icon_size (void) +{ + return default_mini_icon_size; +} + +/** + * _make_gtk_label_bold: + * @label: The label. + * + * Switches the font of label to a bold equivalent. + **/ +void +_make_gtk_label_bold (GtkLabel *label) +{ + GtkStyleContext *context; + + _wnck_ensure_fallback_style (); + + context = gtk_widget_get_style_context (GTK_WIDGET (label)); + gtk_style_context_add_class (context, "wnck-needs-attention"); +} + +void +_make_gtk_label_normal (GtkLabel *label) +{ + GtkStyleContext *context; + + context = gtk_widget_get_style_context (GTK_WIDGET (label)); + gtk_style_context_remove_class (context, "wnck-needs-attention"); +} + +#ifdef HAVE_STARTUP_NOTIFICATION +static gboolean +_wnck_util_sn_utf8_validator (const char *str, + int max_len) +{ + return g_utf8_validate (str, max_len, NULL); +} +#endif /* HAVE_STARTUP_NOTIFICATION */ + +void +_wnck_init (void) +{ + static gboolean done = FALSE; + + if (!done) + { + bindtextdomain (GETTEXT_PACKAGE, WNCK_LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + +#ifdef HAVE_STARTUP_NOTIFICATION + sn_set_utf8_validator (_wnck_util_sn_utf8_validator); +#endif /* HAVE_STARTUP_NOTIFICATION */ + + done = TRUE; + } +} + +Display * +_wnck_get_default_display (void) +{ + GdkDisplay *display = gdk_display_get_default (); + /* FIXME: when we fix libwnck to not use the GDK default display, we will + * need to fix wnckprop accordingly. */ + if (!GDK_IS_X11_DISPLAY (display)) + { + g_warning ("libwnck is designed to work in X11 only, no valid display found"); + return NULL; + } + + return GDK_DISPLAY_XDISPLAY (display); +} + +/** + * wnck_shutdown: + * + * Makes libwnck stop listening to events and tear down all resources from + * libwnck. This should be done if you are not going to need the state change + * notifications for an extended period of time, to avoid wakeups with every + * key and focus event. + * + * After this, all pointers to Wnck object you might still hold are invalid. + * + * Due to the fact that Wnck objects are all + * owned by libwnck, users of this API through introspection should be + * extremely careful: they must explicitly clear variables referencing objects + * before this call. Failure to do so might result in crashes. + * + * Since: 3.4 + */ +void +wnck_shutdown (void) +{ + _wnck_event_filter_shutdown (); + + /* Warning: this is hacky :-) + * + * Shutting down all WnckScreen objects will automatically unreference (and + * finalize) all WnckWindow objects, but not the WnckClassGroup and + * WnckApplication objects. + * Therefore we need to manually shut down all WnckClassGroup and + * WnckApplication objects first, since they reference the WnckScreen they're + * on. + * On the other side, shutting down the WnckScreen objects will results in + * all WnckWindow objects getting unreferenced and finalized, and must + * actually be done before shutting down global WnckWindow structures + * (because the WnckScreen has a list of WnckWindow that will get mis-used + * otherwise). */ + _wnck_class_group_shutdown_all (); + _wnck_application_shutdown_all (); + _wnck_screen_shutdown_all (); + _wnck_window_shutdown_all (); + +#ifdef HAVE_XRES + if (xres_removeid != 0) + g_source_remove (xres_removeid); + xres_removeid = 0; + wnck_pid_read_resource_usage_destroy_hash_table (NULL); +#endif +} + +void +_wnck_ensure_fallback_style (void) +{ + static gboolean css_loaded = FALSE; + GtkCssProvider *provider; + guint priority; + + if (css_loaded) + return; + + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_resource (provider, "/org/gnome/libwnck/wnck.css"); + + priority = GTK_STYLE_PROVIDER_PRIORITY_FALLBACK; + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), + GTK_STYLE_PROVIDER (provider), + priority); + + g_object_unref (provider); + + css_loaded = TRUE; +} diff --git a/libwnck/util.h b/libwnck/util.h new file mode 100644 index 0000000..8d0c77b --- /dev/null +++ b/libwnck/util.h @@ -0,0 +1,123 @@ +/* util header */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_UTIL_H +#define WNCK_UTIL_H + +#include + +G_BEGIN_DECLS + +typedef struct _WnckResourceUsage WnckResourceUsage; + +/** + * WnckResourceUsage: + * @total_bytes_estimate: estimation of the total number of bytes allocated in + * the X server. + * @pixmap_bytes: number of bytes allocated in the X server for resources of + * type Pixmap. + * @n_pixmaps: number of Pixmap resources allocated. + * @n_windows: number of Window resources allocated. + * @n_gcs: number of GContext resources allocated. + * @n_pictures: number of Picture resources allocated. + * @n_glyphsets: number of Glyphset resources allocated. + * @n_fonts: number of Font resources allocated. + * @n_colormap_entries: number of Colormap resources allocated. + * @n_passive_grabs: number of PassiveGrab resources allocated. + * @n_cursors: number of Cursor resources allocated. + * @n_other: number of other resources allocated. + * + * The #WnckResourceUsage struct contains information about the total resource + * usage of an X client, and the number of resources allocated for each + * resource type. + * + * Since: 2.6 + */ +struct _WnckResourceUsage +{ + gulong total_bytes_estimate; + + gulong pixmap_bytes; + + unsigned int n_pixmaps; + unsigned int n_windows; + unsigned int n_gcs; + unsigned int n_pictures; + unsigned int n_glyphsets; + unsigned int n_fonts; + unsigned int n_colormap_entries; + unsigned int n_passive_grabs; + unsigned int n_cursors; + unsigned int n_other; + + /*< private >*/ + unsigned int pad1; + unsigned int pad2; + unsigned int pad3; + unsigned int pad4; + unsigned int pad5; + unsigned long pad6; + unsigned long pad7; + unsigned long pad8; + unsigned long pad9; +}; + +/** + * WnckClientType: + * @WNCK_CLIENT_TYPE_APPLICATION: the libwnck user is a normal application. + * @WNCK_CLIENT_TYPE_PAGER: the libwnck user is an utility application dealing + * with window management, like pagers and taskbars. + * + * Type describing the role of the libwnck user. + * + * Since: 2.14 + */ +typedef enum { + WNCK_CLIENT_TYPE_APPLICATION = 1, + WNCK_CLIENT_TYPE_PAGER = 2 +} WnckClientType; + +void wnck_set_client_type (WnckClientType ewmh_sourceindication_client_type); + +#define WNCK_DEFAULT_ICON_SIZE 32 +#define WNCK_DEFAULT_MINI_ICON_SIZE 16 + +void wnck_set_default_icon_size (gsize size); +void wnck_set_default_mini_icon_size (gsize size); + +void wnck_shutdown (void); + +void wnck_xid_read_resource_usage (GdkDisplay *gdk_display, + gulong xid, + WnckResourceUsage *usage); + +void wnck_pid_read_resource_usage (GdkDisplay *gdk_display, + gulong pid, + WnckResourceUsage *usage); + +G_END_DECLS + +#endif /* WNCK_UTIL_H */ diff --git a/libwnck/version.h b/libwnck/version.h new file mode 100644 index 0000000..3a997e2 --- /dev/null +++ b/libwnck/version.h @@ -0,0 +1,95 @@ +/* version info */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2011 Novell, Inc. + * + * 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; if not, see . + * + * Authors: + * Vincent Untz + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_VERSION_H +#define WNCK_VERSION_H + +/** + * SECTION:version + * @Short_description: variables and functions to check the libwnck version + * @stability: Unstable + * + * libwnck provides version information, primarily useful in configure checks + * for builds that have a configure script, and to write code against different + * versions of libwnck that do not provide the same API. + */ + +/** + * WNCK_MAJOR_VERSION: + * + * Return value: the major version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 1.) + * + * Since: 3.0 + */ +#define WNCK_MAJOR_VERSION (3) + +/** + * WNCK_MINOR_VERSION: + * + * Return value: the minor version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 2.) + * + * Since: 3.0 + */ +#define WNCK_MINOR_VERSION (24) + +/** + * WNCK_MICRO_VERSION: + * + * Return value: the micro version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 5.) + * + * Since: 3.0 + */ +#define WNCK_MICRO_VERSION (1) + +/** + * WNCK_CHECK_VERSION: + * @major: major version (e.g. 1 for version 1.2.5) + * @minor: minor version (e.g. 2 for version 1.2.5) + * @micro: micro version (e.g. 5 for version 1.2.5) + * + * Return value: %TRUE if the version of the libwnck header files + * is the same as or newer than the passed-in version, %FALSE + * otherwise. + * + * Since: 3.0 + */ +#define WNCK_CHECK_VERSION(major,minor,micro) \ + (WNCK_MAJOR_VERSION > (major) || \ + (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION > (minor)) || \ + (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION == (minor) && \ + WNCK_MICRO_VERSION >= (micro))) + +#endif /* WNCK_VERSION_H */ diff --git a/libwnck/version.h.in b/libwnck/version.h.in new file mode 100644 index 0000000..8b46488 --- /dev/null +++ b/libwnck/version.h.in @@ -0,0 +1,95 @@ +/* version info */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2011 Novell, Inc. + * + * 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; if not, see . + * + * Authors: + * Vincent Untz + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_VERSION_H +#define WNCK_VERSION_H + +/** + * SECTION:version + * @Short_description: variables and functions to check the libwnck version + * @stability: Unstable + * + * libwnck provides version information, primarily useful in configure checks + * for builds that have a configure script, and to write code against different + * versions of libwnck that do not provide the same API. + */ + +/** + * WNCK_MAJOR_VERSION: + * + * Return value: the major version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 1.) + * + * Since: 3.0 + */ +#define WNCK_MAJOR_VERSION (@WNCK_MAJOR_VERSION@) + +/** + * WNCK_MINOR_VERSION: + * + * Return value: the minor version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 2.) + * + * Since: 3.0 + */ +#define WNCK_MINOR_VERSION (@WNCK_MINOR_VERSION@) + +/** + * WNCK_MICRO_VERSION: + * + * Return value: the micro version number of the libwnck library, from the + * headers used at application compile time, rather than from the library + * linked against at application run time. + * (e.g. in libwnck version 1.2.5 this is 5.) + * + * Since: 3.0 + */ +#define WNCK_MICRO_VERSION (@WNCK_MICRO_VERSION@) + +/** + * WNCK_CHECK_VERSION: + * @major: major version (e.g. 1 for version 1.2.5) + * @minor: minor version (e.g. 2 for version 1.2.5) + * @micro: micro version (e.g. 5 for version 1.2.5) + * + * Return value: %TRUE if the version of the libwnck header files + * is the same as or newer than the passed-in version, %FALSE + * otherwise. + * + * Since: 3.0 + */ +#define WNCK_CHECK_VERSION(major,minor,micro) \ + (WNCK_MAJOR_VERSION > (major) || \ + (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION > (minor)) || \ + (WNCK_MAJOR_VERSION == (major) && WNCK_MINOR_VERSION == (minor) && \ + WNCK_MICRO_VERSION >= (micro))) + +#endif /* WNCK_VERSION_H */ diff --git a/libwnck/window-action-menu.c b/libwnck/window-action-menu.c new file mode 100644 index 0000000..3e9a386 --- /dev/null +++ b/libwnck/window-action-menu.c @@ -0,0 +1,1175 @@ +/* window action menu (ops on a single window) */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include +#include + +#include "window-action-menu.h" +#include "private.h" + +/** + * SECTION:window-action-menu + * @short_description: a menu widget, used to manipulate a window. + * @see_also: #WnckWindow + * @stability: Unstable + * + * A #WnckActionMenu is a menu containing items to manipulate a window. + * Relevant actions are displayed in the menu, and updated if the window state + * changes. The content of this menu is synchronized with the similar menu + * available in Metacity. + * + * + * + * If there is only one workspace with a viewport, the #WnckActionMenu will + * contain items to move the window in the viewport as if the viewport feature + * was used to create workspaces. This is useful since viewport is generally + * used as an alternative way to create virtual desktops. + * + * + * The #WnckActionMenu does not support moving the window in the viewport if + * there are multiple workspaces on the screen: those two notions are so + * similar that having both at the same time would result in a menu which would + * be confusing to the user. + * + * + */ + +typedef enum +{ + CLOSE, + MINIMIZE, + MAXIMIZE, + ABOVE, + MOVE, + RESIZE, + PIN, + UNPIN, + LEFT, + RIGHT, + UP, + DOWN, + MOVE_TO_WORKSPACE +} WindowAction; + +struct _WnckActionMenuPrivate +{ + WnckWindow *window; + GtkWidget *minimize_item; + GtkWidget *maximize_item; + GtkWidget *above_item; + GtkWidget *move_item; + GtkWidget *resize_item; + GtkWidget *close_item; + GtkWidget *workspace_separator; + GtkWidget *pin_item; + GtkWidget *unpin_item; + GtkWidget *left_item; + GtkWidget *right_item; + GtkWidget *up_item; + GtkWidget *down_item; + GtkWidget *workspace_item; + guint idle_handler; +}; + +enum { + PROP_0, + PROP_WINDOW +}; + +G_DEFINE_TYPE (WnckActionMenu, wnck_action_menu, GTK_TYPE_MENU); +#define WNCK_ACTION_MENU_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_ACTION_MENU, WnckActionMenuPrivate)) + +static void wnck_action_menu_dispose (GObject *object); + +static void window_weak_notify (gpointer data, + GObject *window); + +static void refill_submenu_workspace (WnckActionMenu *menu); +static void refill_submenu_viewport (WnckActionMenu *menu); + +static void +window_weak_notify (gpointer data, + GObject *window) +{ + WNCK_ACTION_MENU(data)->priv->window = NULL; + gtk_widget_destroy (GTK_WIDGET (data)); +} + +static WnckActionMenu* +get_action_menu (GtkWidget *widget) +{ + while (widget) { + if (GTK_IS_MENU_ITEM (widget)) + widget = gtk_widget_get_parent (widget); + + if (WNCK_IS_ACTION_MENU (widget)) + return WNCK_ACTION_MENU (widget); + + widget = gtk_menu_get_attach_widget (GTK_MENU (widget)); + if (widget == NULL) + break; + } + + return NULL; +} + +static void +item_activated_callback (GtkWidget *menu_item, + gpointer data) +{ + WnckActionMenu *menu; + WnckWindow *window; + WindowAction action = GPOINTER_TO_INT (data); + WnckScreen *screen; + gboolean viewport_mode; + + menu = get_action_menu (menu_item); + if (menu == NULL) + return; + + window = menu->priv->window; + + screen = wnck_window_get_screen (window); + viewport_mode = wnck_screen_get_workspace_count (screen) == 1 && + wnck_workspace_is_virtual (wnck_screen_get_workspace (screen, + 0)); + + switch (action) + { + case CLOSE: + /* In an activate callback, so gtk_get_current_event_time() suffices */ + wnck_window_close (window, + gtk_get_current_event_time ()); + break; + case MINIMIZE: + if (wnck_window_is_minimized (window)) + wnck_window_unminimize (window, + gtk_get_current_event_time ()); + else + wnck_window_minimize (window); + break; + case MAXIMIZE: + if (wnck_window_is_maximized (window)) + wnck_window_unmaximize (window); + else + wnck_window_maximize (window); + break; + case ABOVE: + if (wnck_window_is_above (window)) + wnck_window_unmake_above (window); + else + wnck_window_make_above (window); + break; + case MOVE: + wnck_window_keyboard_move (window); + break; + case RESIZE: + wnck_window_keyboard_size (window); + break; + case PIN: + if (!viewport_mode) + wnck_window_pin (window); + else + wnck_window_stick (window); + break; + case UNPIN: + if (!viewport_mode) + wnck_window_unpin (window); + else + wnck_window_unstick (window); + break; + case LEFT: + if (!viewport_mode) + { + WnckWorkspace *workspace; + workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), + WNCK_MOTION_LEFT); + wnck_window_move_to_workspace (window, workspace); + } + else + { + int width, xw, yw, ww, hw; + + width = wnck_screen_get_width (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); + wnck_window_unstick (window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw - width, yw, + ww, hw); + } + break; + case RIGHT: + if (!viewport_mode) + { + WnckWorkspace *workspace; + workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), + WNCK_MOTION_RIGHT); + wnck_window_move_to_workspace (window, workspace); + } + else + { + int width, xw, yw, ww, hw; + + width = wnck_screen_get_width (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); + wnck_window_unstick (window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw + width, yw, + ww, hw); + } + break; + case UP: + if (!viewport_mode) + { + WnckWorkspace *workspace; + workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), + WNCK_MOTION_UP); + wnck_window_move_to_workspace (window, workspace); + } + else + { + int height, xw, yw, ww, hw; + + height = wnck_screen_get_height (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); + wnck_window_unstick (window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw, yw - height, + ww, hw); + } + break; + case DOWN: + if (!viewport_mode) + { + WnckWorkspace *workspace; + workspace = wnck_workspace_get_neighbor (wnck_window_get_workspace (window), + WNCK_MOTION_DOWN); + wnck_window_move_to_workspace (window, workspace); + } + else + { + int height, xw, yw, ww, hw; + + height = wnck_screen_get_height (screen); + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); + wnck_window_unstick (window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw, yw + height, + ww, hw); + } + break; + case MOVE_TO_WORKSPACE: + if (!viewport_mode) + { + int workspace_index; + WnckWorkspace *workspace; + + workspace_index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (menu_item), + "workspace")); + + workspace = wnck_screen_get_workspace (screen, workspace_index); + wnck_window_move_to_workspace (window, workspace); + } + else + { + WnckWorkspace *workspace; + int new_viewport_x, new_viewport_y; + int xw, yw, ww, hw; + int viewport_x, viewport_y; + + new_viewport_x = GPOINTER_TO_INT ( + g_object_get_data (G_OBJECT (menu_item), + "viewport_x")); + new_viewport_y = GPOINTER_TO_INT ( + g_object_get_data (G_OBJECT (menu_item), + "viewport_y")); + + workspace = wnck_screen_get_workspace (screen, 0); + + wnck_window_get_geometry (window, &xw, &yw, &ww, &hw); + + viewport_x = wnck_workspace_get_viewport_x (workspace); + viewport_y = wnck_workspace_get_viewport_y (workspace); + + wnck_window_unstick (window); + wnck_window_set_geometry (window, 0, + WNCK_WINDOW_CHANGE_X | WNCK_WINDOW_CHANGE_Y, + xw + new_viewport_x - viewport_x, + yw + new_viewport_y - viewport_y, + ww, hw); + } + break; + default: + g_assert_not_reached (); + } +} + +static void +set_item_text (GtkWidget *mi, + const char *text) +{ + GtkLabel *label; + + label = GTK_LABEL (gtk_bin_get_child (GTK_BIN (mi))); + gtk_label_set_text_with_mnemonic (label, text); + gtk_label_set_use_underline (label, TRUE); +} + +static gboolean +update_menu_state (WnckActionMenu *menu) +{ + WnckActionMenuPrivate *priv; + WnckWindowActions actions; + WnckScreen *screen; + WnckWorkspace *workspace; + gboolean viewport_mode; + gboolean move_workspace_sensitive; + + priv = menu->priv; + + priv->idle_handler = 0; + + actions = wnck_window_get_actions (priv->window); + screen = wnck_window_get_screen (priv->window); + + viewport_mode = wnck_screen_get_workspace_count (screen) == 1 && + wnck_workspace_is_virtual (wnck_screen_get_workspace (screen, + 0)); + move_workspace_sensitive = viewport_mode || + (actions & WNCK_WINDOW_ACTION_CHANGE_WORKSPACE) != 0; + + if (wnck_window_is_minimized (priv->window)) + { + set_item_text (priv->minimize_item, _("Unmi_nimize")); + gtk_widget_set_sensitive (priv->minimize_item, + (actions & WNCK_WINDOW_ACTION_UNMINIMIZE) != 0); + } + else + { + set_item_text (priv->minimize_item, _("Mi_nimize")); + gtk_widget_set_sensitive (priv->minimize_item, + (actions & WNCK_WINDOW_ACTION_MINIMIZE) != 0); + } + + if (wnck_window_is_maximized (priv->window)) + { + set_item_text (priv->maximize_item, _("Unma_ximize")); + gtk_widget_set_sensitive (priv->maximize_item, + (actions & WNCK_WINDOW_ACTION_UNMAXIMIZE) != 0); + } + else + { + set_item_text (priv->maximize_item, _("Ma_ximize")); + gtk_widget_set_sensitive (priv->maximize_item, + (actions & WNCK_WINDOW_ACTION_MAXIMIZE) != 0); + } + + g_signal_handlers_block_by_func (G_OBJECT (priv->above_item), + item_activated_callback, + GINT_TO_POINTER (ABOVE)); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (priv->above_item), + wnck_window_is_above (priv->window)); + g_signal_handlers_unblock_by_func (G_OBJECT (priv->above_item), + item_activated_callback, + GINT_TO_POINTER (ABOVE)); + + gtk_widget_set_sensitive (priv->above_item, + (actions & WNCK_WINDOW_ACTION_ABOVE) != 0); + + g_signal_handlers_block_by_func (G_OBJECT (priv->pin_item), + item_activated_callback, + GINT_TO_POINTER (PIN)); + g_signal_handlers_block_by_func (G_OBJECT (priv->unpin_item), + item_activated_callback, + GINT_TO_POINTER (UNPIN)); + if ((viewport_mode && wnck_window_is_sticky (priv->window)) || + (!viewport_mode && wnck_window_is_pinned (priv->window))) + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (priv->pin_item), + TRUE); + else + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (priv->unpin_item), + TRUE); + g_signal_handlers_unblock_by_func (G_OBJECT (priv->pin_item), + item_activated_callback, + GINT_TO_POINTER (PIN)); + g_signal_handlers_unblock_by_func (G_OBJECT (priv->unpin_item), + item_activated_callback, + GINT_TO_POINTER (UNPIN)); + + gtk_widget_set_sensitive (priv->pin_item, + move_workspace_sensitive); + + gtk_widget_set_sensitive (priv->unpin_item, + move_workspace_sensitive); + + gtk_widget_set_sensitive (priv->close_item, + (actions & WNCK_WINDOW_ACTION_CLOSE) != 0); + + gtk_widget_set_sensitive (priv->move_item, + (actions & WNCK_WINDOW_ACTION_MOVE) != 0); + + gtk_widget_set_sensitive (priv->resize_item, + (actions & WNCK_WINDOW_ACTION_RESIZE) != 0); + + gtk_widget_set_sensitive (priv->workspace_item, + move_workspace_sensitive); + + gtk_widget_set_sensitive (priv->left_item, + move_workspace_sensitive); + gtk_widget_set_sensitive (priv->right_item, + move_workspace_sensitive); + gtk_widget_set_sensitive (priv->up_item, + move_workspace_sensitive); + gtk_widget_set_sensitive (priv->down_item, + move_workspace_sensitive); + + workspace = wnck_window_get_workspace (priv->window); + + if (viewport_mode && !wnck_window_is_sticky (priv->window)) + { + int window_x, window_y; + int viewport_x, viewport_y; + int viewport_width, viewport_height; + int screen_width, screen_height; + + if (!workspace) + workspace = wnck_screen_get_workspace (screen, 0); + + wnck_window_get_geometry (priv->window, &window_x, &window_y, NULL, NULL); + + viewport_x = wnck_workspace_get_viewport_x (workspace); + viewport_y = wnck_workspace_get_viewport_y (workspace); + + window_x += viewport_x; + window_y += viewport_y; + + viewport_width = wnck_workspace_get_width (workspace); + viewport_height = wnck_workspace_get_height (workspace); + + screen_width = wnck_screen_get_width (screen); + screen_height = wnck_screen_get_height (screen); + + if (window_x >= screen_width) + gtk_widget_show (priv->left_item); + else + gtk_widget_hide (priv->left_item); + + if (window_x < viewport_width - screen_width) + gtk_widget_show (priv->right_item); + else + gtk_widget_hide (priv->right_item); + + if (window_y >= screen_height) + gtk_widget_show (priv->up_item); + else + gtk_widget_hide (priv->up_item); + + if (window_y < viewport_height - screen_height) + gtk_widget_show (priv->down_item); + else + gtk_widget_hide (priv->down_item); + } + else if (!viewport_mode && workspace && !wnck_window_is_pinned (priv->window)) + { + if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_LEFT)) + gtk_widget_show (priv->left_item); + else + gtk_widget_hide (priv->left_item); + + if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_RIGHT)) + gtk_widget_show (priv->right_item); + else + gtk_widget_hide (priv->right_item); + + if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_UP)) + gtk_widget_show (priv->up_item); + else + gtk_widget_hide (priv->up_item); + + if (wnck_workspace_get_neighbor (workspace, WNCK_MOTION_DOWN)) + gtk_widget_show (priv->down_item); + else + gtk_widget_hide (priv->down_item); + } + else + { + gtk_widget_hide (priv->left_item); + gtk_widget_hide (priv->right_item); + gtk_widget_hide (priv->up_item); + gtk_widget_hide (priv->down_item); + } + + if (viewport_mode) + { + int viewport_width, viewport_height; + int screen_width, screen_height; + + viewport_width = wnck_workspace_get_width (workspace); + viewport_height = wnck_workspace_get_height (workspace); + + screen_width = wnck_screen_get_width (screen); + screen_height = wnck_screen_get_height (screen); + + gtk_widget_show (priv->workspace_separator); + gtk_widget_show (priv->pin_item); + gtk_widget_show (priv->unpin_item); + if (viewport_width >= 2 * screen_width || + viewport_height >= 2 * screen_height) + { + gtk_widget_show (priv->workspace_item); + refill_submenu_viewport (menu); + } + else + { + gtk_widget_hide (priv->workspace_item); + gtk_menu_popdown (GTK_MENU (gtk_menu_item_get_submenu (GTK_MENU_ITEM (priv->workspace_item)))); + } + } + else if (wnck_screen_get_workspace_count (screen) > 1) + { + gtk_widget_show (priv->workspace_separator); + gtk_widget_show (priv->pin_item); + gtk_widget_show (priv->unpin_item); + gtk_widget_show (priv->workspace_item); + refill_submenu_workspace (menu); + } + else + { + gtk_widget_hide (priv->workspace_separator); + gtk_widget_hide (priv->pin_item); + gtk_widget_hide (priv->unpin_item); + gtk_widget_hide (priv->workspace_item); + gtk_menu_popdown (GTK_MENU (gtk_menu_item_get_submenu (GTK_MENU_ITEM (priv->workspace_item)))); + } + + gtk_menu_reposition (GTK_MENU (menu)); + + return FALSE; +} + +static void +queue_update (WnckActionMenu *menu) +{ + if (menu->priv->idle_handler == 0) + menu->priv->idle_handler = g_idle_add ((GSourceFunc)update_menu_state, + menu); +} + +static void +state_changed_callback (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state, + gpointer data) +{ + queue_update (WNCK_ACTION_MENU (data)); +} + +static void +actions_changed_callback (WnckWindow *window, + WnckWindowActions changed_mask, + WnckWindowActions new_actions, + gpointer data) +{ + queue_update (WNCK_ACTION_MENU (data)); +} + +static void +workspace_changed_callback (WnckWindow *window, + gpointer data) +{ + queue_update (WNCK_ACTION_MENU (data)); +} + +static void +screen_workspace_callback (WnckWindow *window, + WnckWorkspace *space, + gpointer data) +{ + queue_update (WNCK_ACTION_MENU (data)); +} + +static void +viewports_changed_callback (WnckWindow *window, + gpointer data) +{ + queue_update (WNCK_ACTION_MENU (data)); +} + +static GtkWidget* +make_radio_menu_item (WindowAction action, + GSList **group, + const gchar *mnemonic_text) +{ + GtkWidget *mi; + + mi = gtk_radio_menu_item_new_with_mnemonic (*group, mnemonic_text); + *group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (mi)); + + g_signal_connect (G_OBJECT (mi), "activate", + G_CALLBACK (item_activated_callback), + GINT_TO_POINTER (action)); + + gtk_widget_show (mi); + + return mi; +} + +static GtkWidget* +make_check_menu_item (WindowAction action, + const gchar *mnemonic_text) +{ + GtkWidget *mi; + + mi = gtk_check_menu_item_new_with_mnemonic (mnemonic_text); + + g_signal_connect (G_OBJECT (mi), "activate", + G_CALLBACK (item_activated_callback), + GINT_TO_POINTER (action)); + + gtk_widget_show (mi); + + return mi; +} + +static GtkWidget* +make_menu_item (WindowAction action) +{ + GtkWidget *mi; + + mi = gtk_menu_item_new_with_label (""); + + g_signal_connect (G_OBJECT (mi), "activate", + G_CALLBACK (item_activated_callback), + GINT_TO_POINTER (action)); + + gtk_widget_show (mi); + + return mi; +} + +static char * +get_workspace_name_with_accel (WnckWindow *window, + int index) +{ + const char *name; + int number; + + name = wnck_workspace_get_name (wnck_screen_get_workspace (wnck_window_get_screen (window), + index)); + + g_assert (name != NULL); + + /* + * If the name is of the form "Workspace x" where x is an unsigned + * integer, insert a '_' before the number if it is less than 10 and + * return it + */ + number = 0; + if (sscanf (name, _("Workspace %d"), &number) == 1) { + /* Keep this in sync with what is in refill_submenu_viewport() */ + char *new_name; + + /* + * Above name is a pointer into the Workspace struct. Here we make + * a copy copy so we can have our wicked way with it. + */ + if (number == 10) + new_name = g_strdup_printf (_("Workspace 1_0")); + else + new_name = g_strdup_printf (_("Workspace %s%d"), + number < 10 ? "_" : "", + number); + return new_name; + } + else { + /* + * Otherwise this is just a normal name. Escape any _ characters so that + * the user's workspace names do not get mangled. If the number is less + * than 10 we provide an accelerator. + */ + char *new_name; + const char *source; + char *dest; + + /* + * Assume the worst case, that every character is a _. We also + * provide memory for " (_#)" + */ + new_name = g_malloc0 (strlen (name) * 2 + 6 + 1); + + /* + * Now iterate down the strings, adding '_' to escape as we go + */ + dest = new_name; + source = name; + while (*source != '\0') { + if (*source == '_') + *dest++ = '_'; + *dest++ = *source++; + } + + /* People don't start at workstation 0, but workstation 1 */ + if (index < 9) { + g_snprintf (dest, 6, " (_%d)", index + 1); + } + else if (index == 9) { + g_snprintf (dest, 6, " (_0)"); + } + + return new_name; + } +} + +static void +refill_submenu_workspace (WnckActionMenu *menu) +{ + GtkWidget *submenu; + GList *children; + GList *l; + int num_workspaces, window_space, i; + WnckWorkspace *workspace; + + submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu->priv->workspace_item)); + + /* Remove existing items */ + children = gtk_container_get_children (GTK_CONTAINER (submenu)); + for (l = children; l; l = l->next) + gtk_container_remove (GTK_CONTAINER (submenu), l->data); + g_list_free (children); + + workspace = wnck_window_get_workspace (menu->priv->window); + + num_workspaces = wnck_screen_get_workspace_count (wnck_window_get_screen (menu->priv->window)); + + if (workspace) + window_space = wnck_workspace_get_number (workspace); + else + window_space = -1; + + for (i = 0; i < num_workspaces; i++) + { + char *name; + GtkWidget *item; + + name = get_workspace_name_with_accel (menu->priv->window, i); + + item = make_menu_item (MOVE_TO_WORKSPACE); + g_object_set_data (G_OBJECT (item), "workspace", GINT_TO_POINTER (i)); + + if (i == window_space) + gtk_widget_set_sensitive (item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item); + set_item_text (item, name); + + g_free (name); + } + + gtk_menu_reposition (GTK_MENU (submenu)); +} + +static void +refill_submenu_viewport (WnckActionMenu *menu) +{ + GtkWidget *submenu; + GList *children; + GList *l; + WnckScreen *screen; + WnckWorkspace *workspace; + int window_x, window_y; + int viewport_x, viewport_y; + int viewport_width, viewport_height; + int screen_width, screen_height; + int x, y; + int number; + + submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu->priv->workspace_item)); + + /* Remove existing items */ + children = gtk_container_get_children (GTK_CONTAINER (submenu)); + for (l = children; l; l = l->next) + gtk_container_remove (GTK_CONTAINER (submenu), l->data); + g_list_free (children); + + screen = wnck_window_get_screen (menu->priv->window); + workspace = wnck_screen_get_workspace (screen, 0); + + wnck_window_get_geometry (menu->priv->window, + &window_x, &window_y, NULL, NULL); + + viewport_x = wnck_workspace_get_viewport_x (workspace); + viewport_y = wnck_workspace_get_viewport_y (workspace); + + window_x += viewport_x; + window_y += viewport_y; + + viewport_width = wnck_workspace_get_width (workspace); + viewport_height = wnck_workspace_get_height (workspace); + + screen_width = wnck_screen_get_width (screen); + screen_height = wnck_screen_get_height (screen); + + number = 1; + for (y = 0; y < viewport_height; y += screen_height) + { + char *label; + GtkWidget *item; + + for (x = 0; x < viewport_width; x += screen_width) + { + /* Keep this in sync with what is in get_workspace_name_with_accel() + */ + if (number == 10) + label = g_strdup_printf (_("Workspace 1_0")); + else + label = g_strdup_printf (_("Workspace %s%d"), + number < 10 ? "_" : "", + number); + number++; + + item = make_menu_item (MOVE_TO_WORKSPACE); + g_object_set_data (G_OBJECT (item), "viewport_x", + GINT_TO_POINTER (x)); + g_object_set_data (G_OBJECT (item), "viewport_y", + GINT_TO_POINTER (y)); + + if (window_x >= x && window_x < x + screen_width && + window_y >= y && window_y < y + screen_height) + gtk_widget_set_sensitive (item, FALSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (submenu), item); + set_item_text (item, label); + + g_free (label); + } + } + + gtk_menu_reposition (GTK_MENU (submenu)); +} + +static void +wnck_action_menu_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + WnckActionMenu *menu; + + g_return_if_fail (WNCK_IS_ACTION_MENU (object)); + + menu = WNCK_ACTION_MENU (object); + + switch (prop_id) + { + case PROP_WINDOW: + g_value_set_pointer (value, menu->priv->window); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + + +static void +wnck_action_menu_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + WnckActionMenu *menu; + + g_return_if_fail (WNCK_IS_ACTION_MENU (object)); + + menu = WNCK_ACTION_MENU (object); + + switch (prop_id) + { + case PROP_WINDOW: + g_return_if_fail (WNCK_IS_WINDOW (g_value_get_pointer (value))); + + menu->priv->window = g_value_get_pointer (value); + g_object_notify (G_OBJECT (menu), "window"); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +wnck_action_menu_init (WnckActionMenu *menu) +{ + menu->priv = WNCK_ACTION_MENU_GET_PRIVATE (menu); + + menu->priv->window = NULL; + menu->priv->minimize_item = NULL; + menu->priv->maximize_item = NULL; + menu->priv->above_item = NULL; + menu->priv->move_item = NULL; + menu->priv->resize_item = NULL; + menu->priv->close_item = NULL; + menu->priv->workspace_separator = NULL; + menu->priv->pin_item = NULL; + menu->priv->unpin_item = NULL; + menu->priv->left_item = NULL; + menu->priv->right_item = NULL; + menu->priv->up_item = NULL; + menu->priv->down_item = NULL; + menu->priv->workspace_item = NULL; + menu->priv->idle_handler = 0; +} + +static GObject * +wnck_action_menu_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties) +{ + GObject *obj; + WnckActionMenu *menu; + WnckActionMenuPrivate *priv; + GtkWidget *submenu; + GtkWidget *separator; + GSList *pin_group; + WnckScreen *screen; + + + obj = G_OBJECT_CLASS (wnck_action_menu_parent_class)->constructor (type, + n_construct_properties, + construct_properties); + + menu = WNCK_ACTION_MENU (obj); + priv = menu->priv; + + if (priv->window == NULL) + { + g_warning ("No window specified during creation of the action menu"); + return obj; + } + + g_object_weak_ref (G_OBJECT (priv->window), window_weak_notify, menu); + + priv->minimize_item = make_menu_item (MINIMIZE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->minimize_item); + + priv->maximize_item = make_menu_item (MAXIMIZE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->maximize_item); + + priv->move_item = make_menu_item (MOVE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->move_item); + + set_item_text (priv->move_item, _("_Move")); + + priv->resize_item = make_menu_item (RESIZE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->resize_item); + + set_item_text (priv->resize_item, _("_Resize")); + + priv->workspace_separator = separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + separator); + + priv->above_item = make_check_menu_item (ABOVE, + _("Always On _Top")); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->above_item); + + pin_group = NULL; + + priv->pin_item = make_radio_menu_item (PIN, &pin_group, + _("_Always on Visible Workspace")); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->pin_item); + + priv->unpin_item = make_radio_menu_item (UNPIN, &pin_group, + _("_Only on This Workspace")); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->unpin_item); + + priv->left_item = make_menu_item (LEFT); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->left_item); + set_item_text (priv->left_item, _("Move to Workspace _Left")); + + priv->right_item = make_menu_item (RIGHT); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->right_item); + set_item_text (priv->right_item, _("Move to Workspace R_ight")); + + priv->up_item = make_menu_item (UP); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->up_item); + set_item_text (priv->up_item, _("Move to Workspace _Up")); + + priv->down_item = make_menu_item (DOWN); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->down_item); + set_item_text (priv->down_item, _("Move to Workspace _Down")); + + priv->workspace_item = gtk_menu_item_new_with_mnemonic (_("Move to Another _Workspace")); + gtk_widget_show (priv->workspace_item); + + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (priv->workspace_item), + submenu); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->workspace_item); + + separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + separator); + + priv->close_item = make_menu_item (CLOSE); + + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + priv->close_item); + + set_item_text (priv->close_item, _("_Close")); + + g_signal_connect_object (G_OBJECT (priv->window), + "state_changed", + G_CALLBACK (state_changed_callback), + G_OBJECT (menu), + 0); + + g_signal_connect_object (G_OBJECT (priv->window), + "actions_changed", + G_CALLBACK (actions_changed_callback), + G_OBJECT (menu), + 0); + + g_signal_connect_object (G_OBJECT (priv->window), + "workspace_changed", + G_CALLBACK (workspace_changed_callback), + G_OBJECT (menu), + 0); + + screen = wnck_window_get_screen (priv->window); + + g_signal_connect_object (G_OBJECT (screen), + "workspace_created", + G_CALLBACK (screen_workspace_callback), + G_OBJECT (menu), + 0); + + g_signal_connect_object (G_OBJECT (screen), + "workspace_destroyed", + G_CALLBACK (screen_workspace_callback), + G_OBJECT (menu), + 0); + + g_signal_connect_object (G_OBJECT (screen), + "viewports_changed", + G_CALLBACK (viewports_changed_callback), + G_OBJECT (menu), + 0); + + update_menu_state (menu); + + return obj; +} + +static void +wnck_action_menu_class_init (WnckActionMenuClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckActionMenuPrivate)); + + object_class->constructor = wnck_action_menu_constructor; + object_class->get_property = wnck_action_menu_get_property; + object_class->set_property = wnck_action_menu_set_property; + object_class->dispose = wnck_action_menu_dispose; + + g_object_class_install_property (object_class, + PROP_WINDOW, + g_param_spec_pointer ("window", + "Window", + "The window that will be manipulated through this menu", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); +} + +static void +wnck_action_menu_dispose (GObject *object) +{ + WnckActionMenu *menu; + + menu = WNCK_ACTION_MENU (object); + + if (menu->priv->idle_handler) + { + g_source_remove (menu->priv->idle_handler); + menu->priv->idle_handler = 0; + } + + if (WNCK_IS_WINDOW (menu->priv->window)) + { + WnckScreen *screen; + + g_object_weak_unref (G_OBJECT (menu->priv->window), window_weak_notify, menu); + g_signal_handlers_disconnect_by_data (menu->priv->window, menu); + + screen = wnck_window_get_screen (menu->priv->window); + g_signal_handlers_disconnect_by_data (screen, menu); + + menu->priv->window = NULL; + } + + G_OBJECT_CLASS (wnck_action_menu_parent_class)->dispose (object); +} + +/** + * wnck_action_menu_new: + * @window: the #WnckWindow for which a menu will be created. + * + * Creates a new #WnckActionMenu. The #WnckActionMenu will be filled with menu + * items for window operations on @window. + * + * Return value: a newly created #WnckActionMenu. + * + * Since: 2.22 + **/ +GtkWidget* +wnck_action_menu_new (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return g_object_new (WNCK_TYPE_ACTION_MENU, + "window", window, + NULL); +} diff --git a/libwnck/window-action-menu.h b/libwnck/window-action-menu.h new file mode 100644 index 0000000..da6a33d --- /dev/null +++ b/libwnck/window-action-menu.h @@ -0,0 +1,75 @@ +/* window action menu (ops on a single window) */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_WINDOW_ACTION_MENU_H +#define WNCK_WINDOW_ACTION_MENU_H + +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_ACTION_MENU (wnck_action_menu_get_type ()) +#define WNCK_ACTION_MENU(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_ACTION_MENU, WnckActionMenu)) +#define WNCK_ACTION_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_ACTION_MENU, WnckActionMenuClass)) +#define WNCK_IS_ACTION_MENU(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_ACTION_MENU)) +#define WNCK_IS_ACTION_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_ACTION_MENU)) +#define WNCK_ACTION_MENU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_ACTION_MENU, WnckActionMenuClass)) + +typedef struct _WnckActionMenu WnckActionMenu; +typedef struct _WnckActionMenuClass WnckActionMenuClass; +typedef struct _WnckActionMenuPrivate WnckActionMenuPrivate; + +/** + * WnckActionMenu: + * + * The #WnckActionMenu struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckActionMenu +{ + GtkMenu parent_instance; + + WnckActionMenuPrivate *priv; +}; + +struct _WnckActionMenuClass +{ + GtkMenuClass parent_class; + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +GType wnck_action_menu_get_type (void) G_GNUC_CONST; + +GtkWidget* wnck_action_menu_new (WnckWindow *window); + +G_END_DECLS + +#endif /* WNCK_WINDOW_MENU_H */ diff --git a/libwnck/window.c b/libwnck/window.c new file mode 100644 index 0000000..10961eb --- /dev/null +++ b/libwnck/window.c @@ -0,0 +1,3434 @@ +/* window object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Kim Woelders + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include +#include + +#include "window.h" +#include "class-group.h" +#include "util.h" +#include "xutils.h" +#include "private.h" +#include "wnck-enum-types.h" + +/** + * SECTION:window + * @short_description: an object representing a window. + * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup + * @stability: Unstable + * + * The #WnckWindow objects are always owned by libwnck and must not be + * referenced or unreferenced. + */ + +#define FALLBACK_NAME _("Untitled window") +#define ALL_WORKSPACES ((int) 0xFFFFFFFF) + +static GHashTable *window_hash = NULL; + +/* Keep 0-7 in sync with the numbers in the WindowState enum. Yeah I'm + * a loser. + */ +#define COMPRESS_STATE(window) \ + ( ((window)->priv->is_minimized << 0) | \ + ((window)->priv->is_maximized_horz << 1) | \ + ((window)->priv->is_maximized_vert << 2) | \ + ((window)->priv->is_shaded << 3) | \ + ((window)->priv->skip_pager << 4) | \ + ((window)->priv->skip_taskbar << 5) | \ + ((window)->priv->is_sticky << 6) | \ + ((window)->priv->is_hidden << 7) | \ + ((window)->priv->is_fullscreen << 8) | \ + ((window)->priv->demands_attention << 9) | \ + ((window)->priv->is_urgent << 10)| \ + ((window)->priv->is_above << 11)| \ + ((window)->priv->is_below << 12)) + +struct _WnckWindowPrivate +{ + Window xwindow; + WnckScreen *screen; + WnckApplication *app; + WnckClassGroup *class_group; + Window group_leader; + Window transient_for; + int orig_event_mask; + GdkRectangle icon_geometry; + char *name; + char *icon_name; + char *session_id; + char *session_id_utf8; + char *role; + int pid; + int workspace; + gint sort_order; + + WnckWindowType wintype; + + GdkPixbuf *icon; + GdkPixbuf *mini_icon; + + WnckIconCache *icon_cache; + + WnckWindowActions actions; + + int x; + int y; + int width; + int height; + + int left_frame; + int right_frame; + int top_frame; + int bottom_frame; + + char *startup_id; + + char *res_class; + char *res_name; + + /* true if transient_for points to root window, + * not another app window + */ + guint transient_for_root : 1; + + /* window state */ + guint is_minimized : 1; + guint is_maximized_horz : 1; + guint is_maximized_vert : 1; + guint is_shaded : 1; + guint is_above : 1; + guint is_below : 1; + guint skip_pager : 1; + guint skip_taskbar : 1; + guint is_sticky : 1; + guint is_hidden : 1; + guint is_fullscreen : 1; + guint demands_attention : 1; + guint is_urgent : 1; + + time_t needs_attention_time; + + /* _NET_WM_STATE_HIDDEN doesn't map directly into an + * externally-visible state (it determines the WM_STATE + * interpretation) + */ + guint net_wm_state_hidden : 1; + guint wm_state_iconic : 1; + + /* idle handler for updates */ + guint update_handler; + + /* if you add flags, be sure to set them + * when we create the window so we get an initial update + */ + guint need_update_name : 1; + guint need_update_state : 1; + guint need_update_wm_state : 1; + guint need_update_icon_name : 1; + guint need_update_workspace : 1; + guint need_update_actions : 1; + guint need_update_wintype : 1; + guint need_update_transient_for : 1; + guint need_update_startup_id : 1; + guint need_update_wmclass : 1; + guint need_update_wmhints : 1; + guint need_update_frame_extents : 1; + guint need_update_role : 1; + + guint need_emit_name_changed : 1; + guint need_emit_icon_changed : 1; + guint need_emit_class_changed : 1; + guint need_emit_role_changed : 1; + guint need_emit_type_changed : 1; +}; + +G_DEFINE_TYPE (WnckWindow, wnck_window, G_TYPE_OBJECT); +#define WNCK_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_WINDOW, WnckWindowPrivate)) + +enum { + NAME_CHANGED, + STATE_CHANGED, + WORKSPACE_CHANGED, + ICON_CHANGED, + ACTIONS_CHANGED, + GEOMETRY_CHANGED, + CLASS_CHANGED, + ROLE_CHANGED, + TYPE_CHANGED, + LAST_SIGNAL +}; + +static void wnck_window_finalize (GObject *object); + +static void emit_name_changed (WnckWindow *window); +static void emit_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state); +static void emit_workspace_changed (WnckWindow *window); +static void emit_icon_changed (WnckWindow *window); +static void emit_actions_changed (WnckWindow *window, + WnckWindowActions changed_mask, + WnckWindowActions new_actions); +static void emit_geometry_changed (WnckWindow *window); +static void emit_class_changed (WnckWindow *window); +static void emit_role_changed (WnckWindow *window); +static void emit_type_changed (WnckWindow *window); + +static void update_name (WnckWindow *window); +static void update_state (WnckWindow *window); +static void update_wm_state (WnckWindow *window); +static void update_icon_name (WnckWindow *window); +static void update_workspace (WnckWindow *window); +static void update_actions (WnckWindow *window); +static void update_wintype (WnckWindow *window); +static void update_transient_for (WnckWindow *window); +static void update_startup_id (WnckWindow *window); +static void update_wmclass (WnckWindow *window); +static void update_frame_extents (WnckWindow *window); +static void update_role (WnckWindow *window); +static void unqueue_update (WnckWindow *window); +static void queue_update (WnckWindow *window); +static void force_update_now (WnckWindow *window); + +static WnckWindow* find_last_transient_for (GList *windows, + Window xwindow); + +static guint signals[LAST_SIGNAL] = { 0 }; + +void +_wnck_window_shutdown_all (void) +{ + if (window_hash != NULL) + { + g_hash_table_destroy (window_hash); + window_hash = NULL; + } +} + +static void +wnck_window_init (WnckWindow *window) +{ + window->priv = WNCK_WINDOW_GET_PRIVATE (window); + + window->priv->icon_cache = _wnck_icon_cache_new (); + window->priv->icon_geometry.width = -1; /* invalid cached value */ + window->priv->workspace = -1; + window->priv->sort_order = G_MAXINT; + + /* FIXME: should we have an invalid window type for this? */ + window->priv->wintype = WNCK_WINDOW_NORMAL; +} + +static void +wnck_window_class_init (WnckWindowClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckWindowPrivate)); + + object_class->finalize = wnck_window_finalize; + + /** + * WnckWindow::name-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the name of @window changes. + */ + signals[NAME_CHANGED] = + g_signal_new ("name_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, name_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::state-changed: + * @window: the #WnckWindow which emitted the signal. + * @changed_mask: the bitmask containing bits set for all states of @window + * that have changed. + * @new_state: the new state of @window. + * + * Emitted when the state of @window changes. This can happen when @window is + * (un)minimized, (un)maximized, (un)sticked, (un)shaded, (un)made above, + * (un)made below, (un)set fullscreen, when it needs attention, etc. See + * #WnckWindowState for the complete list of states that might have changed. + */ + signals[STATE_CHANGED] = + g_signal_new ("state_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, state_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 2, + WNCK_TYPE_WINDOW_STATE, WNCK_TYPE_WINDOW_STATE); + + /** + * WnckWindow::workspace-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the current workspace of @window changes, or if @window has + * been pinned or unpinned. + */ + signals[WORKSPACE_CHANGED] = + g_signal_new ("workspace_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, workspace_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::icon-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the icon of @window changes. + */ + signals[ICON_CHANGED] = + g_signal_new ("icon_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, icon_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::actions-changed: + * @window: the #WnckWindow which emitted the signal. + * @changed_mask: the bitmask containing bits set for all actions + * availabilities for @window that have changed. + * @new_state: the new actions availabilities for @window. + * + * Emitted when the actions availabilities for @window change. + */ + signals[ACTIONS_CHANGED] = + g_signal_new ("actions_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, actions_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 2, + WNCK_TYPE_WINDOW_ACTIONS, + WNCK_TYPE_WINDOW_ACTIONS); + + /** + * WnckWindow::geometry-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the geometry of @window changes. + */ + signals[GEOMETRY_CHANGED] = + g_signal_new ("geometry_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, geometry_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::class-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the class name or instance name of @window changes. + */ + signals[CLASS_CHANGED] = + g_signal_new ("class_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, class_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::role-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the role of @window changes. + */ + signals[ROLE_CHANGED] = + g_signal_new ("role_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, role_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); + + /** + * WnckWindow::type-changed: + * @window: the #WnckWindow which emitted the signal. + * + * Emitted when the EWMH type hint of the window changes. + * + * Since: 3.20 + */ + signals[TYPE_CHANGED] = + g_signal_new ("type_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWindowClass, type_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); +} + +static void +wnck_window_finalize (GObject *object) +{ + WnckWindow *window; + + window = WNCK_WINDOW (object); + + _wnck_select_input (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + window->priv->orig_event_mask, + FALSE); + + unqueue_update (window); + + if (window->priv->app) + g_object_unref (G_OBJECT (window->priv->app)); + window->priv->app = NULL; + + if (window->priv->class_group) + g_object_unref (G_OBJECT (window->priv->class_group)); + window->priv->class_group = NULL; + + g_free (window->priv->name); + window->priv->name = NULL; + g_free (window->priv->icon_name); + window->priv->icon_name = NULL; + g_free (window->priv->session_id); + window->priv->session_id = NULL; + g_free (window->priv->session_id_utf8); + window->priv->session_id_utf8 = NULL; + + if (window->priv->icon) + g_object_unref (G_OBJECT (window->priv->icon)); + window->priv->icon = NULL; + + if (window->priv->mini_icon) + g_object_unref (G_OBJECT (window->priv->mini_icon)); + window->priv->mini_icon = NULL; + + _wnck_icon_cache_free (window->priv->icon_cache); + window->priv->icon_cache = NULL; + + g_free (window->priv->startup_id); + window->priv->startup_id = NULL; + g_free (window->priv->res_class); + window->priv->res_class = NULL; + g_free (window->priv->res_name); + window->priv->res_name = NULL; + + window->priv->xwindow = None; + + G_OBJECT_CLASS (wnck_window_parent_class)->finalize (object); +} + +/** + * wnck_window_get: + * @xwindow: an X window ID. + * + * Gets a preexisting #WnckWindow for the X window @xwindow. This will not + * create a #WnckWindow if none exists. The function is robust against bogus + * window IDs. + * + * Return value: (transfer none): the #WnckWindow for @xwindow. The returned + * #WnckWindow is owned by libwnck and must not be referenced or unreferenced. + **/ +WnckWindow* +wnck_window_get (gulong xwindow) +{ + if (window_hash == NULL) + return NULL; + else + return g_hash_table_lookup (window_hash, &xwindow); +} + +/** + * wnck_window_get_screen: + * @window: a #WnckWindow. + * + * Gets the #WnckScreen @window is on. + * + * Return value: (transfer none): the #WnckScreen @window is on. The returned + * #WnckScreen is owned by libwnck and must not be referenced or unreferenced. + **/ +WnckScreen* +wnck_window_get_screen (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->screen; +} + +WnckWindow* +_wnck_window_create (Window xwindow, + WnckScreen *screen, + gint sort_order) +{ + WnckWindow *window; + Screen *xscreen; + + if (window_hash == NULL) + window_hash = g_hash_table_new_full (_wnck_xid_hash, _wnck_xid_equal, + NULL, g_object_unref); + + g_return_val_if_fail (g_hash_table_lookup (window_hash, &xwindow) == NULL, + NULL); + + xscreen = WNCK_SCREEN_XSCREEN (screen); + + window = g_object_new (WNCK_TYPE_WINDOW, NULL); + window->priv->xwindow = xwindow; + window->priv->screen = screen; + + g_hash_table_insert (window_hash, &window->priv->xwindow, window); + + /* Hash now owns one ref, caller gets none */ + + /* Note that xwindow may correspond to a WnckApplication's xwindow, + * that's why we select the union of the mask we want for Application + * and the one we want for window + */ + window->priv->orig_event_mask =_wnck_select_input (xscreen, + window->priv->xwindow, + WNCK_APP_WINDOW_EVENT_MASK, + TRUE); + + /* Default the group leader to the window itself; it is set in + * update_wmhints() if a different group leader is specified. + */ + window->priv->group_leader = window->priv->xwindow; + + window->priv->session_id = + _wnck_get_session_id (xscreen, window->priv->xwindow); + + window->priv->pid = + _wnck_get_pid (xscreen, window->priv->xwindow); + + window->priv->x = 0; + window->priv->y = 0; + window->priv->width = 0; + window->priv->height = 0; + _wnck_get_window_geometry (xscreen, + xwindow, + &window->priv->x, + &window->priv->y, + &window->priv->width, + &window->priv->height); + + window->priv->sort_order = sort_order; + + window->priv->need_update_name = TRUE; + window->priv->need_update_state = TRUE; + window->priv->need_update_icon_name = TRUE; + window->priv->need_update_wm_state = TRUE; + window->priv->need_update_workspace = TRUE; + window->priv->need_update_actions = TRUE; + window->priv->need_update_wintype = TRUE; + window->priv->need_update_transient_for = TRUE; + window->priv->need_update_startup_id = TRUE; + window->priv->need_update_wmclass = TRUE; + window->priv->need_update_wmhints = TRUE; + window->priv->need_update_frame_extents = TRUE; + window->priv->need_update_role = TRUE; + window->priv->need_emit_name_changed = FALSE; + window->priv->need_emit_icon_changed = FALSE; + window->priv->need_emit_class_changed = FALSE; + window->priv->need_emit_role_changed = FALSE; + window->priv->need_emit_type_changed = FALSE; + force_update_now (window); + + return window; +} + +void +_wnck_window_destroy (WnckWindow *window) +{ + Window xwindow = window->priv->xwindow; + + g_return_if_fail (WNCK_IS_WINDOW (window)); + + g_return_if_fail (wnck_window_get (xwindow) == window); + + g_hash_table_remove (window_hash, &xwindow); + + /* Removing from hash also removes the only ref WnckWindow had */ + + g_return_if_fail (wnck_window_get (xwindow) == NULL); +} + +static Display * +_wnck_window_get_display (WnckWindow *window) +{ + return DisplayOfScreen (WNCK_SCREEN_XSCREEN (window->priv->screen)); +} + +/** + * wnck_window_has_name: + * @window: a #WnckWindow. + * + * Checks whether or not @window has a name. wnck_window_get_name() + * will always return some value, even if @window has no name set; + * wnck_window_has_name() can be used to tell if that name is + * real or not. + * + * For icons titles, use wnck_window_has_icon_name() instead. + * + * Return value: %TRUE if wnck_window_get_name() returns @window's + * name, %FALSE if it returns a fallback name. + * + * Since: 2.16 + **/ +gboolean +wnck_window_has_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->name != NULL; +} + +/** + * wnck_window_get_name: + * @window: a #WnckWindow. + * + * Gets the name of @window, as it should be displayed in a pager + * or tasklist. Always returns some value, even if @window has no name + * set; use wnck_window_has_name() if you need to know whether the returned + * name is "real" or not. + * + * For icons titles, use wnck_window_get_icon_name() instead. + * + * Return value: the name of @window, or a fallback name if no name is + * available. + **/ +const char* +wnck_window_get_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (window->priv->name) + return window->priv->name; + else + return FALLBACK_NAME; +} + +/** + * wnck_window_has_icon_name: + * @window: a #WnckWindow + * + * Checks whether or not @window has an icon name. + * wnck_window_get_icon_name() will always return some value, even if + * @window has no icon name set; wnck_window_has_icon_name() can + * be used to tell if that icon name is real or not. + * + * (Note that if wnck_window_has_icon_name() returns %FALSE, but + * wnck_window_has_name() returns %TRUE, then the name returned by + * wnck_window_get_icon_name() is @window's name. Only when both + * methods return %FALSE does wnck_window_get_icon_name() return a + * generic fallback name.) + * + * Return value: %TRUE if wnck_window_get_icon_name() returns + * @window's icon name, %FALSE if it returns a fallback name. + * + * Since: 2.16 + **/ +gboolean +wnck_window_has_icon_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->icon_name != NULL; +} + +/** + * wnck_window_get_icon_name: + * @window: a #WnckWindow + * + * Gets the icon name of @window, as it should be displayed for an icon + * (minimized state). Always returns some value, even if @window has no icon + * name set; use wnck_window_has_icon_name() if you need to know whether the + * returned icon name is "real" or not. + * + * Contrast with wnck_window_get_name(), which returns @window's + * title, not its icon title. + * + * Return value: the icon name of @window, or a fallback icon name if no icon + * name is available. + **/ +const char* +wnck_window_get_icon_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (window->priv->icon_name) + return window->priv->icon_name; + else if (window->priv->name) + return window->priv->name; + else + return FALLBACK_NAME; +} + +char * +_wnck_window_get_name_for_display (WnckWindow *window, + gboolean use_icon_name, + gboolean use_state_decorations) +{ + const char *name; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (use_icon_name && wnck_window_has_icon_name (window)) + name = wnck_window_get_icon_name (window); + else + name = wnck_window_get_name (window); + + if (use_state_decorations) + { + if (window->priv->is_shaded) + return g_strdup_printf ("=%s=", name); + else if (window->priv->is_minimized) + return g_strdup_printf ("[%s]", name); + else + return g_strdup (name); + } + else + return g_strdup (name); +} + + +/** + * wnck_window_get_application: + * @window: a #WnckWindow. + * + * Gets the #WnckApplication to which @window belongs. + * + * Return value: (transfer none): the #WnckApplication to which @window belongs. + * The returned #WnckApplication is owned by libwnck and must not be referenced + * or unreferenced. + **/ +WnckApplication* +wnck_window_get_application (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->app; +} + +/** + * wnck_window_get_transient: + * @window: a #WnckWindow. + * + * Gets the #WnckWindow for which @window is transient. + * + * Return value: (transfer none): the #WnckWindow for which @window is + * transient, or %NULL if @window is not transient for any #WnckWindow. + * The returned #WnckWindow is owned by libwnck and must not be referenced or + * unreferenced. + * + * Since: 2.12 + **/ +WnckWindow* +wnck_window_get_transient (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return wnck_window_get (window->priv->transient_for); +} + +/** + * wnck_window_get_group_leader: + * @window: a #WnckWindow. + * + * Gets the group leader of the group of windows to which @window belongs. + * + * Return value: the group leader of the group of windows to which @window + * belongs, or the X window ID of @window if @window does not belong to any + * group. + **/ +gulong +wnck_window_get_group_leader (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), None); + + return window->priv->group_leader; +} + +/** + * wnck_window_get_xid: + * @window: a #WnckWindow. + * + * Gets the X window ID of @window. + * + * Return value: the X window ID of @window. + **/ +gulong +wnck_window_get_xid (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), None); + + return window->priv->xwindow; +} + +/** + * wnck_window_get_class_group: + * @window: a #WnckWindow. + * + * Gets the #WnckClassGroup to which @window belongs. + * + * Return value: (transfer none): the #WnckClassGroup to which @window belongs. + * The returned #WnckClassGroup is owned by libwnck and must not be referenced + * or unreferenced. + * + * Since: 2.2 + **/ +WnckClassGroup * +wnck_window_get_class_group (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->class_group; +} + +/** + * wnck_window_get_session_id: + * @window: a #WnckWindow. + * + * Gets the session ID for @window in Latin-1 encoding. + * NOTE: this is invalid UTF-8. You can't display this + * string in a GTK+ widget without converting to UTF-8. + * See wnck_window_get_session_id_utf8(). + * + * Return value: the session ID for @window in Latin-1, or %NULL if @window has + * no session ID. + **/ +const char* +wnck_window_get_session_id (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->session_id; +} + +/** + * wnck_window_get_session_id_utf8: + * @window: a #WnckWindow. + * + * Gets the session ID for @window in UTF-8 encoding. + * The session ID should be in Latin-1 encoding, so the conversion should work, + * but a broken client could set a session ID that might not be convertable to + * UTF-8. + * + * Return value: the session ID for @window in UTF-8, or %NULL if @window has + * no session ID. + **/ +const char* +wnck_window_get_session_id_utf8 (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (window->priv->session_id_utf8 == NULL && + window->priv->session_id != NULL) + { + GString *str; + char *p; + + str = g_string_new (""); + + p = window->priv->session_id; + while (*p) + { + g_string_append_unichar (str, g_utf8_get_char (p)); + p = g_utf8_next_char (p); + } + + window->priv->session_id_utf8 = g_string_free (str, FALSE); + } + + return window->priv->session_id_utf8; +} + +/** + * wnck_window_get_role: + * @window: a #WnckWindow. + * + * Gets the role for @window. + * The role uniquely identifies a window among all windows that have the same + * client leader window. + * + * Return value: role for @window, or %NULL if @window has no role. + **/ +const char* +wnck_window_get_role (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->role; +} + +/** + * wnck_window_get_pid: + * @window: a #WnckWindow. + * + * Gets the process ID of @window. + * + * Return value: the process ID of @window, or 0 if none is available. + **/ +int +wnck_window_get_pid (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + return window->priv->pid; +} + +/** + * wnck_window_get_sort_order: + * @window: a #WnckWindow. + * + * Gets the sort order of @window, used for ordering of @window in + * #WnckSelector and #WnckTasklist. The sort order is an internal state in + * libwnck. The initial value is defined when the window is created. + * + * Return value: the sort order of @window, or G_MAXINT if none is available. + * + * Since: 2.10 + **/ +gint +wnck_window_get_sort_order (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), G_MAXINT); + + return window->priv->sort_order; +} + +/** + * wnck_window_set_sort_order: + * @window: a #WnckWindow. + * @order: new sort order for @window. + * + * Sets the sort order of @window. The sort order is used for ordering of + * @window in #WnckSelector and #WnckTasklist. + * + * Since: 2.20 + **/ +void wnck_window_set_sort_order (WnckWindow *window, + gint order) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + window->priv->sort_order = order; + return; +} + +/** + * wnck_window_get_window_type: + * @window: a #WnckWindow. + * + * Gets the semantic type of @window. + * + * Return value: the semantic type of @window. + **/ +WnckWindowType +wnck_window_get_window_type (WnckWindow *window) +{ + /* FIXME: should we have an invalid window type for this? */ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + return window->priv->wintype; +} + +/** + * wnck_window_set_window_type: + * @window: a #WnckWindow. + * @wintype: a semantic type. + * + * Sets the semantic type of @window to @wintype. + * + * Since: 2.12 + **/ +void +wnck_window_set_window_type (WnckWindow *window, WnckWindowType wintype) +{ + Atom atom; + Display *display; + + g_return_if_fail (WNCK_IS_WINDOW (window)); + + switch (wintype) { + case WNCK_WINDOW_NORMAL: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_NORMAL"); + break; + case WNCK_WINDOW_DESKTOP: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DESKTOP"); + break; + case WNCK_WINDOW_DOCK: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DOCK"); + break; + case WNCK_WINDOW_DIALOG: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DIALOG"); + break; + case WNCK_WINDOW_TOOLBAR: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_TOOLBAR"); + break; + case WNCK_WINDOW_MENU: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_MENU"); + break; + case WNCK_WINDOW_UTILITY: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_UTILITY"); + break; + case WNCK_WINDOW_SPLASHSCREEN: + atom = _wnck_atom_get ("_NET_WM_WINDOW_TYPE_SPLASH"); + break; + default: + return; + } + + display = _wnck_window_get_display (window); + + _wnck_error_trap_push (display); + + XChangeProperty (display, + window->priv->xwindow, + _wnck_atom_get ("_NET_WM_WINDOW_TYPE"), + XA_ATOM, 32, PropModeReplace, + (guchar *)&atom, 1); + + _wnck_error_trap_pop (display); + + emit_type_changed (window); +} + +/** + * wnck_window_is_minimized: + * @window: a #WnckWindow. + * + * Gets whether @window is minimized. Minimization state may change anytime + * a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is minimized, %FALSE otherwise. + **/ +gboolean +wnck_window_is_minimized (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_minimized; +} + +/** + * wnck_window_needs_attention: + * @window: a #WnckWindow. + * + * Gets whether @window needs attention. This state may change anytime + * a #WnckWindow::state-changed signal gets emitted. + * + * This state depends on flags such as the demands_attention and is_urgent + * hints. + * + * Return value: %TRUE if @window needs attention, %FALSE otherwise. + * + * Since: 2.12 + **/ +gboolean +wnck_window_needs_attention (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->demands_attention || window->priv->is_urgent; +} + +time_t +_wnck_window_get_needs_attention_time (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + return window->priv->needs_attention_time; +} + +/* Return whether the transient of @window needs attention */ +static WnckWindow * +transient_needs_attention (WnckWindow *window) +{ + GList *windows; + WnckWindow *transient; + + if (!WNCK_IS_WINDOW (window)) + return NULL; + + windows = wnck_screen_get_windows_stacked (window->priv->screen); + + transient = window; + while ((transient = find_last_transient_for (windows, transient->priv->xwindow))) + { + /* catch transient cycles */ + if (transient == window) + return NULL; + + if (wnck_window_needs_attention (transient)) + return transient; + } + + return FALSE; +} + +time_t +_wnck_window_or_transient_get_needs_attention_time (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + if (_wnck_window_get_needs_attention_time (window) == 0) + { + WnckWindow *transient; + + transient = transient_needs_attention (window); + if (transient) + return _wnck_window_get_needs_attention_time (transient); + else + return 0; + } + else + return _wnck_window_get_needs_attention_time (window); +} + +/** + * wnck_window_or_transient_needs_attention: + * @window: a #WnckWindow. + * + * Gets whether @window or one of its transients needs attention. This state + * may change anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window or one of its transients needs attention, + * %FALSE otherwise. + * + * Since: 2.12 + **/ +gboolean +wnck_window_or_transient_needs_attention (WnckWindow *window) +{ + return wnck_window_needs_attention (window) || + transient_needs_attention (window) != NULL; +} + +/** + * wnck_window_is_maximized_horizontally: + * @window: a #WnckWindow. + * + * Gets whether @window is maximized horizontally. Horizontal maximization + * state may change anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is maximized horizontally, %FALSE otherwise. + **/ +gboolean +wnck_window_is_maximized_horizontally (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_maximized_horz; +} + +/** + * wnck_window_is_maximized_vertically: + * @window: a #WnckWindow. + * + * Gets whether @window is maximized vertically. vertiVal maximization + * state may change anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is maximized vertically, %FALSE otherwise. + **/ +gboolean +wnck_window_is_maximized_vertically (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_maximized_vert; +} + +const char* +_wnck_window_get_startup_id (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (window->priv->startup_id == NULL && + window->priv->group_leader != None) + { + WnckApplication *app; + + /* Fall back to group leader property */ + + app = wnck_application_get (window->priv->group_leader); + + if (app != NULL) + return wnck_application_get_startup_id (app); + else + return NULL; + } + + return window->priv->startup_id; +} + +/** + * wnck_window_get_class_group_name: + * @window: a #WnckWindow. + * + * Gets the class group name from the WM_CLASS Property + * for @window. + * + * The class group name is also the identifier name of the #WnckClassGroup to + * which @window belongs. + * + * Return value: the class group name for @window, or %NULL if @window belongs + * to no class group. + **/ +const char* +wnck_window_get_class_group_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->res_class; +} + +/** + * wnck_window_get_class_instance_name: + * @window: a #WnckWindow. + * + * Gets the class instance name from the WM_CLASS Property + * for @window. + * + * The class instance name allows to differentiate windows belonging to the + * same class group, so that they can use different resources. + * + * Return value: the class instance name for @window, or %NULL if @window has + * no class instance. + **/ +const char* +wnck_window_get_class_instance_name (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + return window->priv->res_name; +} + +/** + * wnck_window_is_maximized: + * @window: a #WnckWindow. + * + * Gets whether @window is maximized. Maximization state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * As for GDK, "maximized" means both vertically and horizontally. If @window + * is maximized in only one direction, then @window is not considered + * maximized. + * + * Return value: %TRUE if @window is maximized in both directions, %FALSE + * otherwise. + **/ +gboolean +wnck_window_is_maximized (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return + window->priv->is_maximized_horz && + window->priv->is_maximized_vert; +} + +/** + * wnck_window_is_shaded: + * @window: a #WnckWindow. + * + * Gets whether @window is shaded. Shade state may change anytime + * a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is shaded, %FALSE otherwise. + **/ +gboolean +wnck_window_is_shaded (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_shaded; +} + +/** + * wnck_window_is_above: + * @window: a #WnckWindow. + * + * Gets whether @window is above other windows. This state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * See wnck_window_make_above() for more details on this state. + * + * Return value: %TRUE if @window is above other windows, %FALSE otherwise. + * + * Since: 2.14 + **/ +gboolean +wnck_window_is_above (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_above; +} + +/** + * wnck_window_is_below: + * @window: a #WnckWindow. + * + * Gets whether @window is below other windows. This state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * See wnck_window_make_below() for more details on this state. + * + * Return value: %TRUE if @window is below other windows, %FALSE otherwise. + * + * Since: 2.20 + **/ +gboolean +wnck_window_is_below (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_below; +} + +/** + * wnck_window_is_skip_pager: + * @window: a #WnckWindow. + * + * Gets whether @window is included on pagers. This state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is included on pagers, %FALSE otherwise. + **/ +gboolean +wnck_window_is_skip_pager (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->skip_pager; +} + +/** + * wnck_window_set_skip_pager: + * @window: a #WnckWindow. + * @skip: whether @window should be included on pagers. + * + * Asks the window manager to make @window included or not included on pagers. + **/ +void +wnck_window_set_skip_pager (WnckWindow *window, + gboolean skip) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + skip, + _wnck_atom_get ("_NET_WM_STATE_SKIP_PAGER"), + 0); +} + +/** + * wnck_window_is_skip_tasklist: + * @window: a #WnckWindow. + * + * Gets whether @window is included on tasklists. This state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is included on tasklists, %FALSE otherwise. + **/ +gboolean +wnck_window_is_skip_tasklist (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->skip_taskbar; +} + +/** + * wnck_window_is_fullscreen: + * @window: a #WnckWindow. + * + * Gets whether @window is fullscreen. Fullscreen state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * Return value: %TRUE if @window is fullscreen, %FALSE otherwise. + * + * Since: 2.8 + **/ +gboolean +wnck_window_is_fullscreen (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_fullscreen; +} + +/** + * wnck_window_set_skip_tasklist: + * @window: a #WnckWindow. + * @skip: whether @window should be included on tasklists. + * + * Asks the window manager to make @window included or not included on + * tasklists. + **/ +void +wnck_window_set_skip_tasklist (WnckWindow *window, + gboolean skip) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + skip, + _wnck_atom_get ("_NET_WM_STATE_SKIP_TASKBAR"), + 0); +} + +/** + * wnck_window_set_fullscreen: + * @window: a #WnckWindow. + * @fullscreen: whether to make @window fullscreen. + * + * Asks the window manager to set the fullscreen state of @window according to + * @fullscreen. + * + * Since: 2.8 + **/ +void +wnck_window_set_fullscreen (WnckWindow *window, + gboolean fullscreen) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + fullscreen, + _wnck_atom_get ("_NET_WM_STATE_FULLSCREEN"), + 0); +} + +/** + * wnck_window_is_sticky: + * @window: a #WnckWindow. + * + * Gets whether @window is sticky. Sticky state may change + * anytime a #WnckWindow::state-changed signal gets emitted. + * + * Sticky here means "stuck to the glass", i.e. does not scroll with the + * viewport. In GDK/GTK+ (e.g. gdk_window_stick()/gtk_window_stick()), sticky + * means "stuck to the glass" and also that the window is + * on all workspaces. But here it only means the viewport aspect of it. + * + * Return value: %TRUE if @window is "stuck to the glass", %FALSE otherwise. + **/ +gboolean +wnck_window_is_sticky (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->is_sticky; +} + +/** + * wnck_window_close: + * @window: a #WnckWindow. + * @timestamp: the X server timestamp of the user interaction event that caused + * this call to occur. + * + * Closes @window. + * + * This function existed before 2.6, but the @timestamp argument was missing + * in earlier versions. + * + * Since: 2.6 + **/ +void +wnck_window_close (WnckWindow *window, + guint32 timestamp) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_close (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, timestamp); +} + +/** + * wnck_window_minimize: + * @window: a #WnckWindow. + * + * Minimizes @window. + **/ +void +wnck_window_minimize (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_iconify (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); +} + +/** + * wnck_window_unminimize: + * @window: a #WnckWindow. + * @timestamp: the X server timestamp of the user interaction event that caused + * this call to occur. + * + * Unminimizes @window by activating it or one of its transients. See + * wnck_window_activate_transient() for details on how the activation is done. + **/ +void +wnck_window_unminimize (WnckWindow *window, + guint32 timestamp) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + wnck_window_activate_transient (window, timestamp); +} + +/** + * wnck_window_maximize: + * @window: a #WnckWindow. + * + * Asks the window manager to maximize @window. + **/ +void +wnck_window_maximize (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_VERT"), + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_HORZ")); +} + +/** + * wnck_window_unmaximize: + * @window: a #WnckWindow. + * + * Asks the window manager to unmaximize @window. + **/ +void +wnck_window_unmaximize (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_VERT"), + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_HORZ")); +} + +/** + * wnck_window_maximize_horizontally: + * @window: a #WnckWindow. + * + * Asks the window manager to maximize horizontally @window. + **/ +void +wnck_window_maximize_horizontally (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_HORZ"), + 0); +} + +/** + * wnck_window_unmaximize_horizontally: + * @window: a #WnckWindow. + * + * Asks the window manager to unmaximize horizontally @window. + **/ +void +wnck_window_unmaximize_horizontally (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_HORZ"), + 0); +} + +/** + * wnck_window_maximize_vertically: + * @window: a #WnckWindow. + * + * Asks the window manager to maximize vertically @window. + **/ +void +wnck_window_maximize_vertically (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_VERT"), + 0); +} + +/** + * wnck_window_unmaximize_vertically: + * @window: a #WnckWindow. + * + * Asks the window manager to unmaximize vertically @window. + **/ +void +wnck_window_unmaximize_vertically (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_VERT"), + 0); +} + +/** + * wnck_window_shade: + * @window: a #WnckWindow. + * + * Asks the window manager to shade @window. + **/ +void +wnck_window_shade (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_SHADED"), + 0); +} + +/** + * wnck_window_unshade: + * @window: a #WnckWindow. + * + * Asks the window manager to unshade @window. + **/ +void +wnck_window_unshade (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_SHADED"), + 0); +} + +/** + * wnck_window_make_above: + * @window: a #WnckWindow. + * + * Asks the window manager to put @window on top of most windows (@window will + * not be on top of focused fullscreen windows, of other windows with this + * setting and of dock windows). + * + * Since: 2.14 + **/ +void +wnck_window_make_above (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_ABOVE"), + 0); +} + +/** + * wnck_window_unmake_above: + * @window: a #WnckWindow. + * + * Asks the window manager to not put @window on top of most windows, and to + * put it again in the stack with other windows. + * + * Since: 2.14 + **/ +void +wnck_window_unmake_above (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_ABOVE"), + 0); +} + +/** + * wnck_window_make_below: + * @window: a #WnckWindow. + * + * Asks the window manager to put @window below most windows. + * + * Since: 2.20 + **/ +void +wnck_window_make_below (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_BELOW"), + 0); +} + +/** + * wnck_window_unmake_below: + * @window: a #WnckWindow. + * + * Asks the window manager to not put @window below most windows, and to + * put it again in the stack with other windows. + * + * Since: 2.20 + **/ +void +wnck_window_unmake_below (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_BELOW"), + 0); +} + +/** + * wnck_window_stick: + * @window: a #WnckWindow. + * + * Asks the window manager to keep the @window's position fixed on the + * screen, even when the workspace or viewport scrolls. + **/ +void +wnck_window_stick (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + TRUE, + _wnck_atom_get ("_NET_WM_STATE_STICKY"), + 0); +} + +/** + * wnck_window_unstick: + * @window: a #WnckWindow. + * + * Asks the window manager to not have @window's position fixed on the + * screen when the workspace or viewport scrolls. + **/ +void +wnck_window_unstick (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + FALSE, + _wnck_atom_get ("_NET_WM_STATE_STICKY"), + 0); +} + +/** + * wnck_window_keyboard_move: + * @window: a #WnckWindow. + * + * Asks the window manager to start moving @window via the keyboard. + **/ +void +wnck_window_keyboard_move (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_keyboard_move (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); +} + +/** + * wnck_window_keyboard_size: + * @window: a #WnckWindow. + * + * Asks the window manager to start resizing @window via the keyboard. + **/ +void +wnck_window_keyboard_size (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_keyboard_size (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); +} + +/** + * wnck_window_get_workspace: + * @window: a #WnckWindow. + * + * Gets the current workspace @window is on. If the window is pinned (on all + * workspaces), or not on any workspaces, %NULL may be returned. + * + * Return value: (transfer none): the single current workspace @window is on, or + * %NULL. The returned #WnckWorkspace is owned by libwnck and must not be + * referenced or unreferenced. + **/ +WnckWorkspace* +wnck_window_get_workspace (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + if (window->priv->workspace == ALL_WORKSPACES) + return NULL; + else + return wnck_screen_get_workspace (window->priv->screen, window->priv->workspace); +} + +/** + * wnck_window_move_to_workspace: + * @window: a #WnckWindow. + * @space: a #WnckWorkspace. + * + * Asks the window manager to move @window to @space. If @window was pinned, it + * will also result in @window being visible only on @space. + **/ +void +wnck_window_move_to_workspace (WnckWindow *window, + WnckWorkspace *space) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (WNCK_IS_WORKSPACE (space)); + + _wnck_change_workspace (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + wnck_workspace_get_number (space)); +} + +/** + * wnck_window_is_pinned: + * @window: a #WnckWindow. + * + * Gets whether @window is on all workspace. Pinned state may change + * anytime a #WnckWindow::workspace-changed signal gets emitted, but not when + * a #WnckWindow::state-changed gets emitted. + * + * Return value: %TRUE if @window is on all workspaces, %FALSE otherwise. + **/ +gboolean +wnck_window_is_pinned (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window->priv->workspace == ALL_WORKSPACES; +} + +/** + * wnck_window_pin: + * @window: a #WnckWindow. + * + * Asks the window manager to put @window on all workspaces. + **/ +void +wnck_window_pin (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_change_workspace (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + ALL_WORKSPACES); +} + +/** + * wnck_window_unpin: + * @window: a #WnckWindow. + * + * Asks the window manager to put @window only in the currently active + * workspace, if @window was previously pinned. If @window was not pinned, + * does not change @window's workspace. If the active workspace + * is not known for some reason (it should not happen much), sets + * @window's workspace to the first workspace. + **/ +void +wnck_window_unpin (WnckWindow *window) +{ + WnckWorkspace *active; + + g_return_if_fail (WNCK_IS_WINDOW (window)); + + if (window->priv->workspace != ALL_WORKSPACES) + return; + + active = wnck_screen_get_active_workspace (window->priv->screen); + + _wnck_change_workspace (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + active ? wnck_workspace_get_number (active) : 0); +} + +/** + * wnck_window_activate: + * @window: a #WnckWindow. + * @timestamp: the X server timestamp of the user interaction event that caused + * this call to occur. + * + * Asks the window manager to make @window the active window. The + * window manager may choose to raise @window along with focusing it, and may + * decide to refuse the request (to not steal the focus if there is a more + * recent user activity, for example). + * + * This function existed before 2.10, but the @timestamp argument was missing + * in earlier versions. + * + * Since: 2.10 + **/ +void +wnck_window_activate (WnckWindow *window, + guint32 timestamp) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + _wnck_activate (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + timestamp); +} + +/** + * wnck_window_is_active: + * @window: a #WnckWindow. + * + * Gets whether @window is the active window on its #WnckScreen. + * + * Return value: %TRUE if @window is the active window on its #WnckScreen, + * %FALSE otherwise. + **/ +gboolean +wnck_window_is_active (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return window == wnck_screen_get_active_window (window->priv->screen); +} + +/** + * wnck_window_is_most_recently_activated: + * @window: a #WnckWindow. + * + * Gets whether @window is the most recently activated window on its + * #WnckScreen. + * + * The most recently activated window is identical to the active + * window for click and sloppy focus methods (since a window is always + * active in those cases) but differs slightly for mouse focus since + * there often is no active window. + * + * Return value: %TRUE if @window was the most recently activated window on its + * #WnckScreen, %FALSE otherwise. + * + * Since: 2.8 + **/ +gboolean +wnck_window_is_most_recently_activated (WnckWindow *window) +{ + WnckWindow * current; + WnckWindow * previous; + WnckWindow * most_recently_activated_window; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + current = wnck_screen_get_active_window (window->priv->screen); + previous = wnck_screen_get_previously_active_window (window->priv->screen); + + if (current) + most_recently_activated_window = current; + else + most_recently_activated_window = previous; + + return (window == most_recently_activated_window); +} + +static WnckWindow* +find_last_transient_for (GList *windows, + Window xwindow) +{ + GList *tmp; + WnckWindow *retval; + + /* find _last_ transient for xwindow in the list */ + + retval = NULL; + + tmp = windows; + while (tmp != NULL) + { + WnckWindow *w = tmp->data; + + if (w->priv->transient_for == xwindow && + w->priv->wintype != WNCK_WINDOW_UTILITY) + retval = w; + + tmp = tmp->next; + } + + return retval; +} + +/** + * wnck_window_activate_transient: + * @window: a #WnckWindow. + * @timestamp: the X server timestamp of the user interaction event that caused + * this call to occur. + * + * If @window has transients, activates the most likely transient + * instead of the window itself. Otherwise activates @window. + * + * FIXME the ideal behavior of this function is probably to activate + * the most recently active window among @window and its transients. + * This is probably best implemented on the window manager side. + * + * This function existed before 2.10, but the @timestamp argument was missing + * in earlier versions. + * + * Since: 2.10 + **/ +void +wnck_window_activate_transient (WnckWindow *window, + guint32 timestamp) +{ + GList *windows; + WnckWindow *transient; + WnckWindow *next; + + g_return_if_fail (WNCK_IS_WINDOW (window)); + + windows = wnck_screen_get_windows_stacked (window->priv->screen); + + transient = NULL; + next = find_last_transient_for (windows, window->priv->xwindow); + + while (next != NULL) + { + if (next == window) + { + /* catch transient cycles */ + transient = NULL; + break; + } + + transient = next; + + next = find_last_transient_for (windows, transient->priv->xwindow); + } + + if (transient != NULL) + wnck_window_activate (transient, timestamp); + else + wnck_window_activate (window, timestamp); +} + +/** + * wnck_window_transient_is_most_recently_activated: + * @window: a #WnckWindow. + * + * Gets whether one of the transients of @window is the most + * recently activated window. See + * wnck_window_is_most_recently_activated() for a more complete + * description of what is meant by most recently activated. This + * function is needed because clicking on a #WnckTasklist once will + * activate a transient instead of @window itself + * (wnck_window_activate_transient), and clicking again should + * minimize @window and its transients. (Not doing this can be + * especially annoying in the case of modal dialogs that don't appear + * in the #WnckTasklist). + * + * Return value: %TRUE if one of the transients of @window is the most recently + * activated window, %FALSE otherwise. + * + * Since: 2.12 + **/ +gboolean +wnck_window_transient_is_most_recently_activated (WnckWindow *window) +{ + GList *windows; + WnckWindow *transient; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + windows = wnck_screen_get_windows_stacked (window->priv->screen); + + transient = window; + while ((transient = find_last_transient_for (windows, transient->priv->xwindow))) + { + /* catch transient cycles */ + if (transient == window) + return FALSE; + + if (wnck_window_is_most_recently_activated (transient)) + return TRUE; + } + + return FALSE; +} + +static void +get_icons (WnckWindow *window) +{ + GdkPixbuf *icon; + GdkPixbuf *mini_icon; + gsize normal_size; + gsize mini_size; + + icon = NULL; + mini_icon = NULL; + normal_size = _wnck_get_default_icon_size (); + mini_size = _wnck_get_default_mini_icon_size (); + + if (_wnck_read_icons (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + window->priv->icon_cache, + &icon, normal_size, normal_size, + &mini_icon, mini_size, mini_size)) + { + window->priv->need_emit_icon_changed = TRUE; + + if (window->priv->icon) + g_object_unref (G_OBJECT (window->priv->icon)); + + if (window->priv->mini_icon) + g_object_unref (G_OBJECT (window->priv->mini_icon)); + + window->priv->icon = icon; + window->priv->mini_icon = mini_icon; + } + + g_assert ((window->priv->icon && window->priv->mini_icon) || + !(window->priv->icon || window->priv->mini_icon)); +} + +void +_wnck_window_load_icons (WnckWindow *window) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + get_icons (window); + if (window->priv->need_emit_icon_changed) + queue_update (window); /* not done in get_icons since we call that from + * the update + */ +} + +/** + * wnck_window_get_icon: + * @window: a #WnckWindow. + * + * Gets the icon to be used for @window. If no icon was found, a fallback + * icon is used. wnck_window_get_icon_is_fallback() can be used to tell if the + * icon is the fallback icon. + * + * Return value: (transfer none): the icon for @window. The caller should + * reference the returned GdkPixbuf if it needs to keep + * the icon around. + **/ +GdkPixbuf* +wnck_window_get_icon (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + _wnck_window_load_icons (window); + + return window->priv->icon; +} + +/** + * wnck_window_get_mini_icon: + * @window: a #WnckWindow. + * + * Gets the mini-icon to be used for @window. If no mini-icon was found, a + * fallback mini-icon is used. wnck_window_get_icon_is_fallback() can be used + * to tell if the mini-icon is the fallback mini-icon. + * + * Return value: (transfer none): the mini-icon for @window. The caller should + * reference the returned GdkPixbuf if it needs to keep + * the icon around. + **/ +GdkPixbuf* +wnck_window_get_mini_icon (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), NULL); + + _wnck_window_load_icons (window); + + return window->priv->mini_icon; +} + +/** + * wnck_window_get_icon_is_fallback: + * @window: a #WnckWindow. + * + * Gets whether a default fallback icon is used for @window (because none + * was set on @window). + * + * Return value: %TRUE if the icon for @window is a fallback, %FALSE otherwise. + **/ +gboolean +wnck_window_get_icon_is_fallback (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + + return _wnck_icon_cache_get_is_fallback (window->priv->icon_cache); +} + +/** + * wnck_window_get_actions: + * @window: a #WnckWindow. + * + * Gets the actions that can be done for @window. + * + * Return value: bitmask of actions that can be done for @window. + **/ +WnckWindowActions +wnck_window_get_actions (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + return window->priv->actions; +} + + +/** + * wnck_window_get_state: + * @window: a #WnckWindow. + * + * Gets the state of @window. + * + * Return value: bitmask of active states for @window. + **/ +WnckWindowState +wnck_window_get_state (WnckWindow *window) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), 0); + + return COMPRESS_STATE (window); +} + +/** + * wnck_window_get_client_window_geometry: + * @window: a #WnckWindow. + * @xp: (out): return location for X coordinate in pixels of @window. + * @yp: (out): return location for Y coordinate in pixels of @window. + * @widthp: (out): return location for width in pixels of @window. + * @heightp: (out): return location for height in pixels of @window. + * + * Gets the size and position of @window, as last received + * in a ConfigureNotify event (i.e. this call does not round-trip + * to the server, just gets the last size we were notified of). + * The X and Y coordinates are relative to the root window. + * + * The window manager usually adds a frame around windows. If + * you need to know the size of @window with the frame, use + * wnck_window_get_geometry(). + * + * Since: 2.20 + **/ +void +wnck_window_get_client_window_geometry (WnckWindow *window, + int *xp, + int *yp, + int *widthp, + int *heightp) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + if (xp) + *xp = window->priv->x; + if (yp) + *yp = window->priv->y; + if (widthp) + *widthp = window->priv->width; + if (heightp) + *heightp = window->priv->height; +} + +/** + * wnck_window_get_geometry: + * @window: a #WnckWindow. + * @xp: (out): return location for X coordinate in pixels of @window. + * @yp: (out): return location for Y coordinate in pixels of @window. + * @widthp: (out): return location for width in pixels of @window. + * @heightp: (out): return location for height in pixels of @window. + * + * Gets the size and position of @window, including decorations. This + * function uses the information last received in a ConfigureNotify + * event and adjusts it according to the size of the frame that is + * added by the window manager (this call does not round-trip to the + * server, it just gets the last sizes that were notified). The + * X and Y coordinates are relative to the root window. + * + * If you need to know the actual size of @window ignoring the frame + * added by the window manager, use wnck_window_get_client_window_geometry(). + **/ +void +wnck_window_get_geometry (WnckWindow *window, + int *xp, + int *yp, + int *widthp, + int *heightp) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + if (xp) + *xp = window->priv->x - window->priv->left_frame; + if (yp) + *yp = window->priv->y - window->priv->top_frame; + if (widthp) + *widthp = window->priv->width + window->priv->left_frame + window->priv->right_frame; + if (heightp) + *heightp = window->priv->height + window->priv->top_frame + window->priv->bottom_frame; +} + +/** + * wnck_window_set_geometry: + * @window: a #WnckWindow. + * @gravity: the gravity point to use as a reference for the new position. + * @geometry_mask: a bitmask containing flags for what should be set. + * @x: new X coordinate in pixels of @window. + * @y: new Y coordinate in pixels of @window. + * @width: new width in pixels of @window. + * @height: new height in pixels of @window. + * + * Sets the size and position of @window. The X and Y coordinates should be + * relative to the root window. + * + * Note that the new size and position apply to @window with its frame added + * by the window manager. Therefore, using wnck_window_set_geometry() with + * the values returned by wnck_window_get_geometry() should be a no-op, while + * using wnck_window_set_geometry() with the values returned by + * wnck_window_get_client_window_geometry() should reduce the size of @window + * and move it. + * + * Since: 2.16 + **/ +void +wnck_window_set_geometry (WnckWindow *window, + WnckWindowGravity gravity, + WnckWindowMoveResizeMask geometry_mask, + int x, + int y, + int width, + int height) +{ + int gravity_and_flags; + int source; + + g_return_if_fail (WNCK_IS_WINDOW (window)); + + source = _wnck_get_client_type(); + gravity_and_flags = gravity; + gravity_and_flags |= geometry_mask << 8; + gravity_and_flags |= source << 12; + + x += window->priv->left_frame; + y += window->priv->top_frame; + width -= window->priv->left_frame + window->priv->right_frame; + height -= window->priv->top_frame + window->priv->bottom_frame; + + _wnck_set_window_geometry (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + gravity_and_flags, x, y, width, height); +} + +/** + * wnck_window_is_visible_on_workspace: + * @window: a #WnckWindow. + * @workspace: a #WnckWorkspace. + * + * Like wnck_window_is_on_workspace(), but also checks that + * the window is in a visible state (i.e. not minimized or shaded). + * + * Return value: %TRUE if @window appears on @workspace in normal state, %FALSE + * otherwise. + **/ +gboolean +wnck_window_is_visible_on_workspace (WnckWindow *window, + WnckWorkspace *workspace) +{ + WnckWindowState state; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + g_return_val_if_fail (WNCK_IS_WORKSPACE (workspace), FALSE); + + state = wnck_window_get_state (window); + + if (state & WNCK_WINDOW_STATE_HIDDEN) + return FALSE; /* not visible */ + + return wnck_window_is_on_workspace (window, workspace); +} + +/** + * wnck_window_set_icon_geometry: + * @window: a #WnckWindow. + * @x: X coordinate in pixels. + * @y: Y coordinate in pixels. + * @width: width in pixels. + * @height: height in pixels. + * + * Sets the icon geometry for @window. A typical use case for this is the + * destination of the minimization animation of @window. + */ +void +wnck_window_set_icon_geometry (WnckWindow *window, + int x, + int y, + int width, + int height) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + + if (window->priv->icon_geometry.x == x && + window->priv->icon_geometry.y == y && + window->priv->icon_geometry.width == width && + window->priv->icon_geometry.height == height) + return; + + window->priv->icon_geometry.x = x; + window->priv->icon_geometry.y = y; + window->priv->icon_geometry.width = width; + window->priv->icon_geometry.height = height; + + _wnck_set_icon_geometry (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + x, y, width, height); +} + +/** + * wnck_window_is_on_workspace: + * @window: a #WnckWindow. + * @workspace: a #WnckWorkspace. + * + * Gets whether @window appears on @workspace. + * + * Return value: %TRUE if @window appears on @workspace, %FALSE otherwise. + **/ +gboolean +wnck_window_is_on_workspace (WnckWindow *window, + WnckWorkspace *workspace) +{ + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + g_return_val_if_fail (WNCK_IS_WORKSPACE (workspace), FALSE); + + return wnck_window_is_pinned (window) || + wnck_window_get_workspace (window) == workspace; +} + +/** + * wnck_window_is_in_viewport: + * @window: a #WnckWindow. + * @workspace: a #WnckWorkspace. + * + * Gets %TRUE if @window appears in the current viewport of @workspace. + * + * Return value: %TRUE if @window appears in current viewport of @workspace, + * %FALSE otherwise. + * + * Since: 2.4 + **/ +gboolean +wnck_window_is_in_viewport (WnckWindow *window, + WnckWorkspace *workspace) +{ + GdkRectangle window_rect; + GdkRectangle viewport_rect; + + g_return_val_if_fail (WNCK_IS_WINDOW (window), FALSE); + g_return_val_if_fail (WNCK_IS_WORKSPACE (workspace), FALSE); + + if (wnck_window_is_pinned (window) ) + return TRUE; + + if (wnck_window_get_workspace (window) != workspace) + return FALSE; + + viewport_rect.x = wnck_workspace_get_viewport_x (workspace); + viewport_rect.y = wnck_workspace_get_viewport_y (workspace); + viewport_rect.width = wnck_screen_get_width (window->priv->screen); + viewport_rect.height = wnck_screen_get_height (window->priv->screen); + + window_rect.x = window->priv->x - window->priv->left_frame + viewport_rect.x; + window_rect.y = window->priv->y - window->priv->top_frame + viewport_rect.y; + window_rect.width = window->priv->width + window->priv->left_frame + window->priv->right_frame; + window_rect.height = window->priv->height + window->priv->top_frame + window->priv->bottom_frame; + + return gdk_rectangle_intersect (&viewport_rect, &window_rect, &window_rect); +} + +void +_wnck_window_set_application (WnckWindow *window, + WnckApplication *app) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (app == NULL || WNCK_IS_APPLICATION (app)); + + if (app) + g_object_ref (G_OBJECT (app)); + if (window->priv->app) + g_object_unref (G_OBJECT (window->priv->app)); + window->priv->app = app; +} + +void +_wnck_window_set_class_group (WnckWindow *window, + WnckClassGroup *class_group) +{ + g_return_if_fail (WNCK_IS_WINDOW (window)); + g_return_if_fail (class_group == NULL || WNCK_IS_CLASS_GROUP (class_group)); + + if (class_group) + g_object_ref (G_OBJECT (class_group)); + if (window->priv->class_group) + g_object_unref (G_OBJECT (window->priv->class_group)); + window->priv->class_group = class_group; +} + +void +_wnck_window_process_property_notify (WnckWindow *window, + XEvent *xevent) +{ + if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_STATE")) + { + window->priv->need_update_state = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("WM_STATE")) + { + window->priv->need_update_wm_state = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + XA_WM_NAME || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_NAME") || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_VISIBLE_NAME")) + { + window->priv->need_update_name = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + XA_WM_ICON_NAME || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_ICON_NAME") || + xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_VISIBLE_ICON_NAME")) + { + window->priv->need_update_icon_name = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_ALLOWED_ACTIONS")) + { + window->priv->need_update_actions = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_DESKTOP")) + { + window->priv->need_update_workspace = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_WINDOW_TYPE")) + { + window->priv->need_update_wintype = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("WM_TRANSIENT_FOR")) + { + window->priv->need_update_transient_for = TRUE; + window->priv->need_update_wintype = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_STARTUP_ID")) + { + window->priv->need_update_startup_id = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == XA_WM_CLASS) + { + window->priv->need_update_wmclass = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_WM_ICON") || + xevent->xproperty.atom == + _wnck_atom_get ("KWM_WIN_ICON")) + { + _wnck_icon_cache_property_changed (window->priv->icon_cache, + xevent->xproperty.atom); + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("WM_HINTS")) + { + window->priv->need_update_wmhints = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("_NET_FRAME_EXTENTS") || + xevent->xproperty.atom == + _wnck_atom_get ("_GTK_FRAME_EXTENTS")) + { + window->priv->need_update_frame_extents = TRUE; + queue_update (window); + } + else if (xevent->xproperty.atom == + _wnck_atom_get ("WM_WINDOW_ROLE")) + { + window->priv->need_update_role = TRUE; + queue_update (window); + } +} + +void +_wnck_window_process_configure_notify (WnckWindow *window, + XEvent *xevent) +{ + if (xevent->xconfigure.send_event) + { + window->priv->x = xevent->xconfigure.x; + window->priv->y = xevent->xconfigure.y; + } + else + { + _wnck_get_window_position (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + &window->priv->x, + &window->priv->y); + } + + window->priv->width = xevent->xconfigure.width; + window->priv->height = xevent->xconfigure.height; + + emit_geometry_changed (window); +} + +static void +update_wm_state (WnckWindow *window) +{ + int state; + + if (!window->priv->need_update_wm_state) + return; + + window->priv->need_update_wm_state = FALSE; + + window->priv->wm_state_iconic = FALSE; + + state = _wnck_get_wm_state (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); + + if (state == IconicState) + window->priv->wm_state_iconic = TRUE; +} + +static void +update_state (WnckWindow *window) +{ + Atom *atoms; + int n_atoms; + int i; + gboolean reread_net_wm_state; + + reread_net_wm_state = window->priv->need_update_state; + + window->priv->need_update_state = FALSE; + + /* This is a bad hack, we always add the + * state based on window type in to the state, + * even if no state update is pending (since the + * state update just means the _NET_WM_STATE prop + * changed + */ + + if (reread_net_wm_state) + { + gboolean demanded_attention; + + demanded_attention = window->priv->demands_attention; + + window->priv->is_maximized_horz = FALSE; + window->priv->is_maximized_vert = FALSE; + window->priv->is_sticky = FALSE; + window->priv->is_shaded = FALSE; + window->priv->is_above = FALSE; + window->priv->is_below = FALSE; + window->priv->skip_taskbar = FALSE; + window->priv->skip_pager = FALSE; + window->priv->net_wm_state_hidden = FALSE; + window->priv->is_fullscreen = FALSE; + window->priv->demands_attention = FALSE; + + atoms = NULL; + n_atoms = 0; + _wnck_get_atom_list (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("_NET_WM_STATE"), + &atoms, &n_atoms); + + i = 0; + while (i < n_atoms) + { + if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_VERT")) + window->priv->is_maximized_vert = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_MAXIMIZED_HORZ")) + window->priv->is_maximized_horz = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_HIDDEN")) + window->priv->net_wm_state_hidden = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_STICKY")) + window->priv->is_sticky = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_SHADED")) + window->priv->is_shaded = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_ABOVE")) + window->priv->is_above = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_BELOW")) + window->priv->is_below = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_FULLSCREEN")) + window->priv->is_fullscreen = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_SKIP_TASKBAR")) + window->priv->skip_taskbar = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_SKIP_PAGER")) + window->priv->skip_pager = TRUE; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_STATE_DEMANDS_ATTENTION")) + window->priv->demands_attention = TRUE; + + ++i; + } + + if (window->priv->demands_attention != demanded_attention) + { + if (window->priv->demands_attention) + time (&window->priv->needs_attention_time); + else if (!window->priv->is_urgent) + window->priv->needs_attention_time = 0; + } + + g_free (atoms); + } + + switch (window->priv->wintype) + { + case WNCK_WINDOW_DESKTOP: + case WNCK_WINDOW_DOCK: + case WNCK_WINDOW_SPLASHSCREEN: + window->priv->skip_taskbar = TRUE; + break; + + case WNCK_WINDOW_TOOLBAR: + case WNCK_WINDOW_MENU: + case WNCK_WINDOW_UTILITY: + case WNCK_WINDOW_DIALOG: + /* Skip taskbar if the window is transient + * for some main application window + */ + if (wnck_window_get_transient (window) != NULL && + !window->priv->transient_for_root) + window->priv->skip_taskbar = TRUE; + break; + + case WNCK_WINDOW_NORMAL: + default: + break; + } + + /* FIXME!!!!!!!!!! What in the world is this buggy duplicate of the code + * immediately above this for??!?!? + */ + switch (window->priv->wintype) + { + case WNCK_WINDOW_DESKTOP: + case WNCK_WINDOW_DOCK: + case WNCK_WINDOW_TOOLBAR: + case WNCK_WINDOW_MENU: + case WNCK_WINDOW_SPLASHSCREEN: + window->priv->skip_pager = TRUE; + break; + + case WNCK_WINDOW_NORMAL: + case WNCK_WINDOW_DIALOG: + case WNCK_WINDOW_UTILITY: + default: + break; + } + + /* FIXME we need to recompute this if the window manager changes */ + if (wnck_screen_net_wm_supports (window->priv->screen, + "_NET_WM_STATE_HIDDEN")) + { + window->priv->is_hidden = window->priv->net_wm_state_hidden; + + /* FIXME this is really broken; need to bring it up on + * wm-spec-list. It results in showing an "Unminimize" menu + * item on task list, for shaded windows. + */ + window->priv->is_minimized = window->priv->is_hidden; + } + else + { + window->priv->is_minimized = window->priv->wm_state_iconic; + + window->priv->is_hidden = window->priv->is_minimized || window->priv->is_shaded; + } +} + +static void +update_name (WnckWindow *window) +{ + char *new_name; + + if (!window->priv->need_update_name) + return; + + window->priv->need_update_name = FALSE; + + new_name = _wnck_get_name (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); + + if (g_strcmp0 (window->priv->name, new_name) != 0) + window->priv->need_emit_name_changed = TRUE; + + g_free (window->priv->name); + window->priv->name = new_name; +} + +static void +update_icon_name (WnckWindow *window) +{ + char *new_name = NULL; + + if (!window->priv->need_update_icon_name) + return; + + window->priv->need_update_icon_name = FALSE; + + new_name = _wnck_get_icon_name (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow); + + if (g_strcmp0 (window->priv->icon_name, new_name) != 0) + window->priv->need_emit_name_changed = TRUE; + + g_free (window->priv->icon_name); + window->priv->icon_name = new_name; +} + +static void +update_workspace (WnckWindow *window) +{ + int val; + int old; + + if (!window->priv->need_update_workspace) + return; + + window->priv->need_update_workspace = FALSE; + + old = window->priv->workspace; + + val = ALL_WORKSPACES; + _wnck_get_cardinal (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("_NET_WM_DESKTOP"), + &val); + + window->priv->workspace = val; + + if (old != window->priv->workspace) + emit_workspace_changed (window); +} + +static void +update_actions (WnckWindow *window) +{ + Atom *atoms; + int n_atoms; + int i; + + if (!window->priv->need_update_actions) + return; + + window->priv->need_update_actions = FALSE; + + window->priv->actions = 0; + + atoms = NULL; + n_atoms = 0; + if (!_wnck_get_atom_list (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("_NET_WM_ALLOWED_ACTIONS"), + &atoms, + &n_atoms)) + { + window->priv->actions = + WNCK_WINDOW_ACTION_MOVE | + WNCK_WINDOW_ACTION_RESIZE | + WNCK_WINDOW_ACTION_SHADE | + WNCK_WINDOW_ACTION_STICK | + WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY | + WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY | + WNCK_WINDOW_ACTION_CHANGE_WORKSPACE | + WNCK_WINDOW_ACTION_CLOSE | + WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY | + WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY | + WNCK_WINDOW_ACTION_UNSHADE | + WNCK_WINDOW_ACTION_UNSTICK | + WNCK_WINDOW_ACTION_MINIMIZE | + WNCK_WINDOW_ACTION_UNMINIMIZE | + WNCK_WINDOW_ACTION_MAXIMIZE | + WNCK_WINDOW_ACTION_UNMAXIMIZE | + WNCK_WINDOW_ACTION_FULLSCREEN | + WNCK_WINDOW_ACTION_ABOVE | + WNCK_WINDOW_ACTION_BELOW; + return; + } + + i = 0; + while (i < n_atoms) + { + if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MOVE")) + window->priv->actions |= WNCK_WINDOW_ACTION_MOVE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_RESIZE")) + window->priv->actions |= WNCK_WINDOW_ACTION_RESIZE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_SHADE")) + window->priv->actions |= WNCK_WINDOW_ACTION_SHADE | + WNCK_WINDOW_ACTION_UNSHADE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_STICK")) + window->priv->actions |= WNCK_WINDOW_ACTION_STICK | + WNCK_WINDOW_ACTION_UNSTICK; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MINIMIZE")) + window->priv->actions |= WNCK_WINDOW_ACTION_MINIMIZE | + WNCK_WINDOW_ACTION_UNMINIMIZE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MAXIMIZE_HORZ")) + window->priv->actions |= WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY | + WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_MAXIMIZE_VERT")) + window->priv->actions |= WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY | + WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_CHANGE_DESKTOP")) + window->priv->actions |= WNCK_WINDOW_ACTION_CHANGE_WORKSPACE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_CLOSE")) + window->priv->actions |= WNCK_WINDOW_ACTION_CLOSE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_FULLSCREEN")) + window->priv->actions |= WNCK_WINDOW_ACTION_FULLSCREEN; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_ABOVE")) + window->priv->actions |= WNCK_WINDOW_ACTION_ABOVE; + + else if (atoms[i] == _wnck_atom_get ("_NET_WM_ACTION_BELOW")) + window->priv->actions |= WNCK_WINDOW_ACTION_BELOW; + + else + { + const char *name = _wnck_atom_name (atoms [i]); + + if (name && g_str_has_prefix (name, "_NET_WM_")) + g_warning ("Unhandled action type %s", name); + } + + i++; + } + + g_free (atoms); + + if ((window->priv->actions & WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY) && + (window->priv->actions & WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY)) + window->priv->actions |= + WNCK_WINDOW_ACTION_MAXIMIZE | + WNCK_WINDOW_ACTION_UNMAXIMIZE; +} + +static void +update_wintype (WnckWindow *window) +{ + Atom *atoms; + int n_atoms; + WnckWindowType type; + gboolean found_type; + + if (!window->priv->need_update_wintype) + return; + + window->priv->need_update_wintype = FALSE; + + found_type = FALSE; + type = WNCK_WINDOW_NORMAL; + + atoms = NULL; + n_atoms = 0; + if (_wnck_get_atom_list (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("_NET_WM_WINDOW_TYPE"), + &atoms, + &n_atoms)) + { + int i; + + i = 0; + while (i < n_atoms && !found_type) + { + /* We break as soon as we find one we recognize, + * supposed to prefer those near the front of the list + */ + found_type = TRUE; + if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DESKTOP")) + type = WNCK_WINDOW_DESKTOP; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DOCK")) + type = WNCK_WINDOW_DOCK; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_TOOLBAR")) + type = WNCK_WINDOW_TOOLBAR; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_MENU")) + type = WNCK_WINDOW_MENU; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_DIALOG")) + type = WNCK_WINDOW_DIALOG; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_NORMAL")) + type = WNCK_WINDOW_NORMAL; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_UTILITY")) + type = WNCK_WINDOW_UTILITY; + else if (atoms[i] == _wnck_atom_get ("_NET_WM_WINDOW_TYPE_SPLASH")) + type = WNCK_WINDOW_SPLASHSCREEN; + else + found_type = FALSE; + + ++i; + } + + g_free (atoms); + } + + if (!found_type) + { + if (window->priv->transient_for != None) + { + type = WNCK_WINDOW_DIALOG; + } + else + { + type = WNCK_WINDOW_NORMAL; + } + found_type = TRUE; + } + + if (window->priv->wintype != type) + { + window->priv->need_emit_type_changed = TRUE; + window->priv->wintype = type; + } +} + +static void +update_transient_for (WnckWindow *window) +{ + Window parent; + + if (!window->priv->need_update_transient_for) + return; + + window->priv->need_update_transient_for = FALSE; + + parent = None; + if (_wnck_get_window (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("WM_TRANSIENT_FOR"), + &parent) && + parent != window->priv->xwindow) + { + window->priv->transient_for = parent; + + if (wnck_screen_get_for_root (window->priv->transient_for) != NULL) + window->priv->transient_for_root = TRUE; + else + window->priv->transient_for_root = FALSE; + } + else + { + window->priv->transient_for = None; + window->priv->transient_for_root = FALSE; + } +} + +static void +update_startup_id (WnckWindow *window) +{ + if (!window->priv->need_update_startup_id) + return; + + window->priv->need_update_startup_id = FALSE; + + g_free (window->priv->startup_id); + window->priv->startup_id = + _wnck_get_utf8_property (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("_NET_STARTUP_ID")); +} + +static void +update_wmclass (WnckWindow *window) +{ + char *new_res_class = NULL; + char *new_res_name = NULL; + + if (!window->priv->need_update_wmclass) + return; + + window->priv->need_update_wmclass = FALSE; + + _wnck_get_wmclass (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + &new_res_class, + &new_res_name); + + if (g_strcmp0 (window->priv->res_class, new_res_class) != 0 || + g_strcmp0 (window->priv->res_name, new_res_name) != 0) + { + window->priv->need_emit_class_changed = TRUE; + + g_free (window->priv->res_class); + g_free (window->priv->res_name); + + window->priv->res_class = new_res_class; + window->priv->res_name = new_res_name; + } + else + { + g_free (new_res_class); + g_free (new_res_name); + } +} + +static void +update_wmhints (WnckWindow *window) +{ + Display *display; + XWMHints *hints; + + if (!window->priv->need_update_wmhints) + return; + + display = _wnck_window_get_display (window); + + _wnck_error_trap_push (display); + hints = XGetWMHints (display, window->priv->xwindow); + _wnck_error_trap_pop (display); + + if (hints) + { + if ((hints->flags & IconPixmapHint) || + (hints->flags & IconMaskHint)) + _wnck_icon_cache_property_changed (window->priv->icon_cache, + _wnck_atom_get ("WM_HINTS")); + + if (hints->flags & WindowGroupHint) + window->priv->group_leader = hints->window_group; + + if (hints->flags & XUrgencyHint) + { + window->priv->is_urgent = TRUE; + time (&window->priv->needs_attention_time); + } + else + { + window->priv->is_urgent = FALSE; + if (!window->priv->demands_attention) + window->priv->needs_attention_time = 0; + } + + XFree (hints); + } + + window->priv->need_update_wmhints = FALSE; +} + +static void +update_frame_extents (WnckWindow *window) +{ + int left, right, top, bottom; + + if (!window->priv->need_update_frame_extents) + return; + + window->priv->need_update_frame_extents = FALSE; + + left = right = top = bottom = 0; + + if (!_wnck_get_frame_extents (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + &left, &right, &top, &bottom)) + return; + + if (left != window->priv->left_frame || + right != window->priv->right_frame || + top != window->priv->top_frame || + bottom != window->priv->bottom_frame) + { + window->priv->left_frame = left; + window->priv->right_frame = right; + window->priv->top_frame = top; + window->priv->bottom_frame = bottom; + + emit_geometry_changed (window); + } +} + +static void +update_role (WnckWindow *window) +{ + char *new_role; + + if (!window->priv->need_update_role) + return; + + window->priv->need_update_role = FALSE; + + new_role = _wnck_get_text_property (WNCK_SCREEN_XSCREEN (window->priv->screen), + window->priv->xwindow, + _wnck_atom_get ("WM_WINDOW_ROLE")); + + if (g_strcmp0 (window->priv->role, new_role) != 0) + { + window->priv->need_emit_role_changed = TRUE; + + g_free (window->priv->role); + window->priv->role = new_role; + } + else + { + g_free (new_role); + } +} + +static void +force_update_now (WnckWindow *window) +{ + WnckWindowState old_state; + WnckWindowState new_state; + WnckWindowActions old_actions; + + unqueue_update (window); + + /* Name must be done before all other stuff, + * because we have iconsistent state across the + * update_name/update_icon_name functions (no window name), + * and we have to fix that before we emit any other signals + */ + + update_name (window); + update_icon_name (window); + + if (window->priv->need_emit_name_changed) + emit_name_changed (window); + + old_state = COMPRESS_STATE (window); + old_actions = window->priv->actions; + + update_startup_id (window); /* no side effects */ + update_wmclass (window); + update_wmhints (window); + update_transient_for (window); /* wintype needs this to be first */ + update_wintype (window); /* emits signals */ + update_wm_state (window); + update_state (window); /* must come after the above, since they affect + * our calculated state + */ + update_workspace (window); /* emits signals */ + update_actions (window); + update_frame_extents (window); /* emits signals */ + update_role (window); /* emits signals */ + + get_icons (window); + + new_state = COMPRESS_STATE (window); + + if (old_state != new_state) + emit_state_changed (window, old_state ^ new_state, new_state); + + if (old_actions != window->priv->actions) + emit_actions_changed (window, old_actions ^ window->priv->actions, + window->priv->actions); + + if (window->priv->need_emit_icon_changed) + emit_icon_changed (window); + + if (window->priv->need_emit_class_changed) + emit_class_changed (window); + + if (window->priv->need_emit_role_changed) + emit_role_changed (window); + + if (window->priv->need_emit_type_changed) + emit_type_changed (window); +} + + +static gboolean +update_idle (gpointer data) +{ + WnckWindow *window = WNCK_WINDOW (data); + + window->priv->update_handler = 0; + force_update_now (window); + return FALSE; +} + +static void +queue_update (WnckWindow *window) +{ + if (window->priv->update_handler != 0) + return; + + window->priv->update_handler = g_idle_add (update_idle, window); +} + +static void +unqueue_update (WnckWindow *window) +{ + if (window->priv->update_handler != 0) + { + g_source_remove (window->priv->update_handler); + window->priv->update_handler = 0; + } +} + +static void +emit_name_changed (WnckWindow *window) +{ + window->priv->need_emit_name_changed = FALSE; + g_signal_emit (G_OBJECT (window), + signals[NAME_CHANGED], + 0); +} + +static void +emit_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state) +{ + g_signal_emit (G_OBJECT (window), + signals[STATE_CHANGED], + 0, changed_mask, new_state); +} + +static void +emit_workspace_changed (WnckWindow *window) +{ + g_signal_emit (G_OBJECT (window), + signals[WORKSPACE_CHANGED], + 0); +} + +static void +emit_icon_changed (WnckWindow *window) +{ + window->priv->need_emit_icon_changed = FALSE; + g_signal_emit (G_OBJECT (window), + signals[ICON_CHANGED], + 0); +} + +static void +emit_class_changed (WnckWindow *window) +{ + window->priv->need_emit_class_changed = FALSE; + g_signal_emit (G_OBJECT (window), + signals[CLASS_CHANGED], + 0); +} + +static void +emit_actions_changed (WnckWindow *window, + WnckWindowActions changed_mask, + WnckWindowActions new_actions) +{ + g_signal_emit (G_OBJECT (window), + signals[ACTIONS_CHANGED], + 0, changed_mask, new_actions); +} + +static void +emit_geometry_changed (WnckWindow *window) +{ + g_signal_emit (G_OBJECT (window), + signals[GEOMETRY_CHANGED], + 0); +} + +static void +emit_role_changed (WnckWindow *window) +{ + window->priv->need_emit_role_changed = FALSE; + g_signal_emit (G_OBJECT (window), + signals[ROLE_CHANGED], + 0); +} + +static void +emit_type_changed (WnckWindow *window) +{ + window->priv->need_emit_type_changed = FALSE; + g_signal_emit (G_OBJECT (window), + signals[TYPE_CHANGED], + 0); +} diff --git a/libwnck/window.h b/libwnck/window.h new file mode 100644 index 0000000..72545aa --- /dev/null +++ b/libwnck/window.h @@ -0,0 +1,423 @@ +/* window object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_WINDOW_H +#define WNCK_WINDOW_H + +#ifndef WNCK_I_KNOW_THIS_IS_UNSTABLE +#error "libwnck should only be used if you understand that it's subject to frequent change, and is not supported as a fixed API/ABI or as part of the platform" +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +/** + * WnckWindowState: + * @WNCK_WINDOW_STATE_MINIMIZED: the window is minimized. + * @WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY: the window is horizontically + * maximized. + * @WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY: the window is vertically maximized. + * @WNCK_WINDOW_STATE_SHADED: the window is shaded. + * @WNCK_WINDOW_STATE_SKIP_PAGER: the window should not be included on pagers. + * @WNCK_WINDOW_STATE_SKIP_TASKLIST: the window should not be included on + * tasklists. + * @WNCK_WINDOW_STATE_STICKY: the window is sticky (see + * wnck_window_is_sticky()). + * @WNCK_WINDOW_STATE_HIDDEN: the window is not visible on its #WnckWorkspace + * and viewport (when minimized, for example). + * @WNCK_WINDOW_STATE_FULLSCREEN: the window is fullscreen. + * @WNCK_WINDOW_STATE_DEMANDS_ATTENTION: the window needs attention (because + * the window requested activation but the window manager refused it, for + * example). + * @WNCK_WINDOW_STATE_URGENT: the window requires a response from the user. + * @WNCK_WINDOW_STATE_ABOVE: the window is above other windows (see + * wnck_window_make_above()). + * @WNCK_WINDOW_STATE_BELOW: the window is below other windows (see + * wnck_window_make_below()). + * + * Type used as a bitmask to describe the state of a #WnckWindow. + */ +typedef enum +{ + WNCK_WINDOW_STATE_MINIMIZED = 1 << 0, + WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY = 1 << 1, + WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY = 1 << 2, + WNCK_WINDOW_STATE_SHADED = 1 << 3, + WNCK_WINDOW_STATE_SKIP_PAGER = 1 << 4, + WNCK_WINDOW_STATE_SKIP_TASKLIST = 1 << 5, + WNCK_WINDOW_STATE_STICKY = 1 << 6, + WNCK_WINDOW_STATE_HIDDEN = 1 << 7, + WNCK_WINDOW_STATE_FULLSCREEN = 1 << 8, + WNCK_WINDOW_STATE_DEMANDS_ATTENTION = 1 << 9, + WNCK_WINDOW_STATE_URGENT = 1 << 10, + WNCK_WINDOW_STATE_ABOVE = 1 << 11, + WNCK_WINDOW_STATE_BELOW = 1 << 12 +} WnckWindowState; + +/** + * WnckWindowActions: + * @WNCK_WINDOW_ACTION_MOVE: the window may be moved around the screen. + * @WNCK_WINDOW_ACTION_RESIZE: the window may be resized. + * @WNCK_WINDOW_ACTION_SHADE: the window may be shaded. + * @WNCK_WINDOW_ACTION_STICK: the window may be sticked. + * @WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY: the window may be maximized + * horizontally. + * @WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY: the window may be maximized + * vertically. + * @WNCK_WINDOW_ACTION_CHANGE_WORKSPACE: the window may be moved between + * workspaces, or (un)pinned. + * @WNCK_WINDOW_ACTION_CLOSE: the window may be closed. + * @WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY: the window may be unmaximized + * horizontally. + * @WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY: the window may be maximized + * vertically. + * @WNCK_WINDOW_ACTION_UNSHADE: the window may be unshaded. + * @WNCK_WINDOW_ACTION_UNSTICK: the window may be unsticked. + * @WNCK_WINDOW_ACTION_MINIMIZE: the window may be minimized. + * @WNCK_WINDOW_ACTION_UNMINIMIZE: the window may be unminimized. + * @WNCK_WINDOW_ACTION_MAXIMIZE: the window may be maximized. + * @WNCK_WINDOW_ACTION_UNMAXIMIZE: the window may be unmaximized. + * @WNCK_WINDOW_ACTION_FULLSCREEN: the window may be brought to fullscreen. + * @WNCK_WINDOW_ACTION_ABOVE: the window may be made above other windows. + * @WNCK_WINDOW_ACTION_BELOW: the window may be made below other windows. + * + * Type used as a bitmask to describe the actions that can be done for a + * #WnckWindow. + */ +typedef enum +{ + WNCK_WINDOW_ACTION_MOVE = 1 << 0, + WNCK_WINDOW_ACTION_RESIZE = 1 << 1, + WNCK_WINDOW_ACTION_SHADE = 1 << 2, + WNCK_WINDOW_ACTION_STICK = 1 << 3, + WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY = 1 << 4, + WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY = 1 << 5, + WNCK_WINDOW_ACTION_CHANGE_WORKSPACE = 1 << 6, /* includes pin/unpin */ + WNCK_WINDOW_ACTION_CLOSE = 1 << 7, + WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY = 1 << 8, + WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY = 1 << 9, + WNCK_WINDOW_ACTION_UNSHADE = 1 << 10, + WNCK_WINDOW_ACTION_UNSTICK = 1 << 11, + WNCK_WINDOW_ACTION_MINIMIZE = 1 << 12, + WNCK_WINDOW_ACTION_UNMINIMIZE = 1 << 13, + WNCK_WINDOW_ACTION_MAXIMIZE = 1 << 14, + WNCK_WINDOW_ACTION_UNMAXIMIZE = 1 << 15, + WNCK_WINDOW_ACTION_FULLSCREEN = 1 << 16, + WNCK_WINDOW_ACTION_ABOVE = 1 << 17, + WNCK_WINDOW_ACTION_BELOW = 1 << 18 +} WnckWindowActions; + +/** + * WnckWindowType: + * @WNCK_WINDOW_NORMAL: the window is a normal window. + * @WNCK_WINDOW_DESKTOP: the window is a desktop. + * @WNCK_WINDOW_DOCK: the window is a dock or a panel. + * @WNCK_WINDOW_DIALOG: the window is a dialog window. + * @WNCK_WINDOW_TOOLBAR: the window is a tearoff toolbar. + * @WNCK_WINDOW_MENU: the window is a tearoff menu. + * @WNCK_WINDOW_UTILITY: the window is a small persistent utility window, such + * as a palette or toolbox. + * @WNCK_WINDOW_SPLASHSCREEN: the window is a splash screen displayed as an + * application is starting up. + * + * Type describing the semantic type of a #WnckWindow. + */ +typedef enum +{ + WNCK_WINDOW_NORMAL, /* document/app window */ + WNCK_WINDOW_DESKTOP, /* desktop background */ + WNCK_WINDOW_DOCK, /* panel */ + WNCK_WINDOW_DIALOG, /* dialog */ + WNCK_WINDOW_TOOLBAR, /* tearoff toolbar */ + WNCK_WINDOW_MENU, /* tearoff menu */ + WNCK_WINDOW_UTILITY, /* palette/toolbox window */ + WNCK_WINDOW_SPLASHSCREEN /* splash screen */ +} WnckWindowType; + +/** + * WnckWindowGravity: + * @WNCK_WINDOW_GRAVITY_CURRENT: keep the current gravity point. + * @WNCK_WINDOW_GRAVITY_NORTHWEST: use the left top corner of the frame window + * as gravity point. + * @WNCK_WINDOW_GRAVITY_NORTH: use the center of the frame window's top side as + * gravity point. + * @WNCK_WINDOW_GRAVITY_NORTHEAST: use the right top corner of the frame window + * as gravity point. + * @WNCK_WINDOW_GRAVITY_WEST: use the center of the frame window's left side as + * gravity point. + * @WNCK_WINDOW_GRAVITY_CENTER: use the center of the frame window as gravity + * point. + * @WNCK_WINDOW_GRAVITY_EAST: use the center of the frame window's right side + * as gravity point. + * @WNCK_WINDOW_GRAVITY_SOUTHWEST: use the left bottom corner of the frame + * window as gravity point. + * @WNCK_WINDOW_GRAVITY_SOUTH: use the center of the frame window's bottom side + * as gravity point. + * @WNCK_WINDOW_GRAVITY_SOUTHEAST: use the right bottom corner of the frame + * window as gravity point. + * @WNCK_WINDOW_GRAVITY_STATIC: use the left top corner of the client window as + * gravity point. + * + * Flag used when changing the geometry of a #WnckWindow. This is the gravity + * point to use as a reference for the new position. + * + * Since: 2.16 + */ +typedef enum +{ + WNCK_WINDOW_GRAVITY_CURRENT = 0, + WNCK_WINDOW_GRAVITY_NORTHWEST = 1, + WNCK_WINDOW_GRAVITY_NORTH = 2, + WNCK_WINDOW_GRAVITY_NORTHEAST = 3, + WNCK_WINDOW_GRAVITY_WEST = 4, + WNCK_WINDOW_GRAVITY_CENTER = 5, + WNCK_WINDOW_GRAVITY_EAST = 6, + WNCK_WINDOW_GRAVITY_SOUTHWEST = 7, + WNCK_WINDOW_GRAVITY_SOUTH = 8, + WNCK_WINDOW_GRAVITY_SOUTHEAST = 9, + WNCK_WINDOW_GRAVITY_STATIC = 10 +} WnckWindowGravity; + +/** + * WnckWindowMoveResizeMask: + * @WNCK_WINDOW_CHANGE_X: X coordinate of the window should be changed. + * @WNCK_WINDOW_CHANGE_Y: Y coordinate of the window should be changed. + * @WNCK_WINDOW_CHANGE_WIDTH: width of the window should be changed. + * @WNCK_WINDOW_CHANGE_HEIGHT: height of the window should be changed. + * + * Flag used as a bitmask when changing the geometry of a #WnckWindow. This + * indicates which part of the geometry should be changed. + * + * Since: 2.16 + */ +typedef enum +{ + WNCK_WINDOW_CHANGE_X = 1 << 0, + WNCK_WINDOW_CHANGE_Y = 1 << 1, + WNCK_WINDOW_CHANGE_WIDTH = 1 << 2, + WNCK_WINDOW_CHANGE_HEIGHT = 1 << 3 +} WnckWindowMoveResizeMask; + +#define WNCK_TYPE_WINDOW (wnck_window_get_type ()) +#define WNCK_WINDOW(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_WINDOW, WnckWindow)) +#define WNCK_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_WINDOW, WnckWindowClass)) +#define WNCK_IS_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_WINDOW)) +#define WNCK_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_WINDOW)) +#define WNCK_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_WINDOW, WnckWindowClass)) + +typedef struct _WnckWindowClass WnckWindowClass; +typedef struct _WnckWindowPrivate WnckWindowPrivate; + +/** + * WnckWindow: + * + * The #WnckWindow struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckWindow +{ + GObject parent_instance; + + WnckWindowPrivate *priv; +}; + +struct _WnckWindowClass +{ + GObjectClass parent_class; + + /* window name or icon name changed */ + void (* name_changed) (WnckWindow *window); + + /* minimized, maximized, sticky, skip pager, skip task, shaded + * may have changed + */ + void (* state_changed) (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state); + + /* Changed workspace or pinned/unpinned state */ + void (* workspace_changed) (WnckWindow *window); + + /* Changed icon */ + void (* icon_changed) (WnckWindow *window); + + /* Changed actions */ + void (* actions_changed) (WnckWindow *window, + WnckWindowActions changed_mask, + WnckWindowActions new_actions); + + /* Changed size/position */ + void (* geometry_changed) (WnckWindow *window); + + /* Changed class group/instance name */ + void (* class_changed) (WnckWindow *window); + + /* Changed role */ + void (* role_changed) (WnckWindow *window); + + void (* type_changed) (WnckWindow *window); + + /* Padding for future expansion */ + void (* pad1) (void); +}; + +GType wnck_window_get_type (void) G_GNUC_CONST; + +WnckWindow* wnck_window_get (gulong xwindow); + +WnckScreen* wnck_window_get_screen (WnckWindow *window); + +gboolean wnck_window_has_name (WnckWindow *window); +const char* wnck_window_get_name (WnckWindow *window); +gboolean wnck_window_has_icon_name (WnckWindow *window); +const char* wnck_window_get_icon_name (WnckWindow *window); + +WnckApplication* wnck_window_get_application (WnckWindow *window); +WnckWindow* wnck_window_get_transient (WnckWindow *window); +gulong wnck_window_get_group_leader (WnckWindow *window); +gulong wnck_window_get_xid (WnckWindow *window); + +WnckClassGroup *wnck_window_get_class_group (WnckWindow *window); + +const char* wnck_window_get_class_group_name (WnckWindow *window); +const char* wnck_window_get_class_instance_name (WnckWindow *window); + +const char* wnck_window_get_session_id (WnckWindow *window); +const char* wnck_window_get_session_id_utf8 (WnckWindow *window); +const char* wnck_window_get_role (WnckWindow *window); +int wnck_window_get_pid (WnckWindow *window); +gint wnck_window_get_sort_order (WnckWindow *window); +void wnck_window_set_sort_order (WnckWindow *window, + gint order); + +WnckWindowType wnck_window_get_window_type (WnckWindow *window); +void wnck_window_set_window_type (WnckWindow *window, + WnckWindowType wintype); + +gboolean wnck_window_is_minimized (WnckWindow *window); +gboolean wnck_window_is_maximized_horizontally (WnckWindow *window); +gboolean wnck_window_is_maximized_vertically (WnckWindow *window); +gboolean wnck_window_is_maximized (WnckWindow *window); +gboolean wnck_window_is_shaded (WnckWindow *window); +gboolean wnck_window_is_above (WnckWindow *window); +gboolean wnck_window_is_below (WnckWindow *window); +gboolean wnck_window_is_skip_pager (WnckWindow *window); +gboolean wnck_window_is_skip_tasklist (WnckWindow *window); +gboolean wnck_window_is_fullscreen (WnckWindow *window); +gboolean wnck_window_is_sticky (WnckWindow *window); +gboolean wnck_window_needs_attention (WnckWindow *window); +gboolean wnck_window_or_transient_needs_attention (WnckWindow *window); + +void wnck_window_set_skip_pager (WnckWindow *window, + gboolean skip); +void wnck_window_set_skip_tasklist (WnckWindow *window, + gboolean skip); +void wnck_window_set_fullscreen (WnckWindow *window, + gboolean fullscreen); + +void wnck_window_close (WnckWindow *window, + guint32 timestamp); +void wnck_window_minimize (WnckWindow *window); +void wnck_window_unminimize (WnckWindow *window, + guint32 timestamp); +void wnck_window_maximize (WnckWindow *window); +void wnck_window_unmaximize (WnckWindow *window); +void wnck_window_maximize_horizontally (WnckWindow *window); +void wnck_window_unmaximize_horizontally (WnckWindow *window); +void wnck_window_maximize_vertically (WnckWindow *window); +void wnck_window_unmaximize_vertically (WnckWindow *window); +void wnck_window_shade (WnckWindow *window); +void wnck_window_unshade (WnckWindow *window); +void wnck_window_make_above (WnckWindow *window); +void wnck_window_unmake_above (WnckWindow *window); +void wnck_window_make_below (WnckWindow *window); +void wnck_window_unmake_below (WnckWindow *window); +void wnck_window_stick (WnckWindow *window); +void wnck_window_unstick (WnckWindow *window); +void wnck_window_keyboard_move (WnckWindow *window); +void wnck_window_keyboard_size (WnckWindow *window); + +WnckWorkspace* wnck_window_get_workspace (WnckWindow *window); +void wnck_window_move_to_workspace (WnckWindow *window, + WnckWorkspace *space); + +/* pinned = on all workspaces */ +gboolean wnck_window_is_pinned (WnckWindow *window); +void wnck_window_pin (WnckWindow *window); +void wnck_window_unpin (WnckWindow *window); + +void wnck_window_activate (WnckWindow *window, + guint32 timestamp); +gboolean wnck_window_is_active (WnckWindow *window); +gboolean wnck_window_is_most_recently_activated (WnckWindow *window); +void wnck_window_activate_transient (WnckWindow *window, + guint32 timestamp); +gboolean wnck_window_transient_is_most_recently_activated (WnckWindow *window); + +GdkPixbuf* wnck_window_get_icon (WnckWindow *window); +GdkPixbuf* wnck_window_get_mini_icon (WnckWindow *window); + +gboolean wnck_window_get_icon_is_fallback (WnckWindow *window); + +void wnck_window_set_icon_geometry (WnckWindow *window, + int x, + int y, + int width, + int height); + +WnckWindowActions wnck_window_get_actions (WnckWindow *window); +WnckWindowState wnck_window_get_state (WnckWindow *window); + +void wnck_window_get_client_window_geometry (WnckWindow *window, + int *xp, + int *yp, + int *widthp, + int *heightp); +void wnck_window_get_geometry (WnckWindow *window, + int *xp, + int *yp, + int *widthp, + int *heightp); +void wnck_window_set_geometry (WnckWindow *window, + WnckWindowGravity gravity, + WnckWindowMoveResizeMask geometry_mask, + int x, + int y, + int width, + int height); + +gboolean wnck_window_is_visible_on_workspace (WnckWindow *window, + WnckWorkspace *workspace); +gboolean wnck_window_is_on_workspace (WnckWindow *window, + WnckWorkspace *workspace); +gboolean wnck_window_is_in_viewport (WnckWindow *window, + WnckWorkspace *workspace); + +G_END_DECLS + +#endif /* WNCK_WINDOW_H */ diff --git a/libwnck/wnck-enum-types.c b/libwnck/wnck-enum-types.c new file mode 100644 index 0000000..bf955c2 --- /dev/null +++ b/libwnck/wnck-enum-types.c @@ -0,0 +1,256 @@ + + + +#include + +/* enumerations from "pager.h" */ +static const GEnumValue _wnck_pager_display_mode_values[] = { + { WNCK_PAGER_DISPLAY_NAME, "WNCK_PAGER_DISPLAY_NAME", "name" }, + { WNCK_PAGER_DISPLAY_CONTENT, "WNCK_PAGER_DISPLAY_CONTENT", "content" }, + { 0, NULL, NULL } +}; + +GType +wnck_pager_display_mode_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckPagerDisplayMode", _wnck_pager_display_mode_values); + + return type; +} + + +/* enumerations from "screen.h" */ +static const GEnumValue __wncklayoutorientation___wnck_layout_orientation_values[] = { + { WNCK_LAYOUT_ORIENTATION_HORIZONTAL, "WNCK_LAYOUT_ORIENTATION_HORIZONTAL", "horizontal" }, + { WNCK_LAYOUT_ORIENTATION_VERTICAL, "WNCK_LAYOUT_ORIENTATION_VERTICAL", "vertical" }, + { 0, NULL, NULL } +}; + +GType +_wncklayoutorientation___wnck_layout_orientation_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("_WnckLayoutOrientation", __wncklayoutorientation___wnck_layout_orientation_values); + + return type; +} + +static const GEnumValue __wncklayoutcorner___wnck_layout_corner_values[] = { + { WNCK_LAYOUT_CORNER_TOPLEFT, "WNCK_LAYOUT_CORNER_TOPLEFT", "topleft" }, + { WNCK_LAYOUT_CORNER_TOPRIGHT, "WNCK_LAYOUT_CORNER_TOPRIGHT", "topright" }, + { WNCK_LAYOUT_CORNER_BOTTOMRIGHT, "WNCK_LAYOUT_CORNER_BOTTOMRIGHT", "bottomright" }, + { WNCK_LAYOUT_CORNER_BOTTOMLEFT, "WNCK_LAYOUT_CORNER_BOTTOMLEFT", "bottomleft" }, + { 0, NULL, NULL } +}; + +GType +_wncklayoutcorner___wnck_layout_corner_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("_WnckLayoutCorner", __wncklayoutcorner___wnck_layout_corner_values); + + return type; +} + + +/* enumerations from "tasklist.h" */ +static const GEnumValue _wnck_tasklist_grouping_type_values[] = { + { WNCK_TASKLIST_NEVER_GROUP, "WNCK_TASKLIST_NEVER_GROUP", "never-group" }, + { WNCK_TASKLIST_AUTO_GROUP, "WNCK_TASKLIST_AUTO_GROUP", "auto-group" }, + { WNCK_TASKLIST_ALWAYS_GROUP, "WNCK_TASKLIST_ALWAYS_GROUP", "always-group" }, + { 0, NULL, NULL } +}; + +GType +wnck_tasklist_grouping_type_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckTasklistGroupingType", _wnck_tasklist_grouping_type_values); + + return type; +} + + +/* enumerations from "util.h" */ +static const GEnumValue _wnck_client_type_values[] = { + { WNCK_CLIENT_TYPE_APPLICATION, "WNCK_CLIENT_TYPE_APPLICATION", "application" }, + { WNCK_CLIENT_TYPE_PAGER, "WNCK_CLIENT_TYPE_PAGER", "pager" }, + { 0, NULL, NULL } +}; + +GType +wnck_client_type_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckClientType", _wnck_client_type_values); + + return type; +} + + +/* enumerations from "window.h" */ +static const GFlagsValue _wnck_window_state_values[] = { + { WNCK_WINDOW_STATE_MINIMIZED, "WNCK_WINDOW_STATE_MINIMIZED", "minimized" }, + { WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY, "WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY", "maximized-horizontally" }, + { WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY, "WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY", "maximized-vertically" }, + { WNCK_WINDOW_STATE_SHADED, "WNCK_WINDOW_STATE_SHADED", "shaded" }, + { WNCK_WINDOW_STATE_SKIP_PAGER, "WNCK_WINDOW_STATE_SKIP_PAGER", "skip-pager" }, + { WNCK_WINDOW_STATE_SKIP_TASKLIST, "WNCK_WINDOW_STATE_SKIP_TASKLIST", "skip-tasklist" }, + { WNCK_WINDOW_STATE_STICKY, "WNCK_WINDOW_STATE_STICKY", "sticky" }, + { WNCK_WINDOW_STATE_HIDDEN, "WNCK_WINDOW_STATE_HIDDEN", "hidden" }, + { WNCK_WINDOW_STATE_FULLSCREEN, "WNCK_WINDOW_STATE_FULLSCREEN", "fullscreen" }, + { WNCK_WINDOW_STATE_DEMANDS_ATTENTION, "WNCK_WINDOW_STATE_DEMANDS_ATTENTION", "demands-attention" }, + { WNCK_WINDOW_STATE_URGENT, "WNCK_WINDOW_STATE_URGENT", "urgent" }, + { WNCK_WINDOW_STATE_ABOVE, "WNCK_WINDOW_STATE_ABOVE", "above" }, + { WNCK_WINDOW_STATE_BELOW, "WNCK_WINDOW_STATE_BELOW", "below" }, + { 0, NULL, NULL } +}; + +GType +wnck_window_state_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_flags_register_static ("WnckWindowState", _wnck_window_state_values); + + return type; +} + +static const GFlagsValue _wnck_window_actions_values[] = { + { WNCK_WINDOW_ACTION_MOVE, "WNCK_WINDOW_ACTION_MOVE", "move" }, + { WNCK_WINDOW_ACTION_RESIZE, "WNCK_WINDOW_ACTION_RESIZE", "resize" }, + { WNCK_WINDOW_ACTION_SHADE, "WNCK_WINDOW_ACTION_SHADE", "shade" }, + { WNCK_WINDOW_ACTION_STICK, "WNCK_WINDOW_ACTION_STICK", "stick" }, + { WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY, "WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY", "maximize-horizontally" }, + { WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY, "WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY", "maximize-vertically" }, + { WNCK_WINDOW_ACTION_CHANGE_WORKSPACE, "WNCK_WINDOW_ACTION_CHANGE_WORKSPACE", "change-workspace" }, + { WNCK_WINDOW_ACTION_CLOSE, "WNCK_WINDOW_ACTION_CLOSE", "close" }, + { WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY, "WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY", "unmaximize-horizontally" }, + { WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY, "WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY", "unmaximize-vertically" }, + { WNCK_WINDOW_ACTION_UNSHADE, "WNCK_WINDOW_ACTION_UNSHADE", "unshade" }, + { WNCK_WINDOW_ACTION_UNSTICK, "WNCK_WINDOW_ACTION_UNSTICK", "unstick" }, + { WNCK_WINDOW_ACTION_MINIMIZE, "WNCK_WINDOW_ACTION_MINIMIZE", "minimize" }, + { WNCK_WINDOW_ACTION_UNMINIMIZE, "WNCK_WINDOW_ACTION_UNMINIMIZE", "unminimize" }, + { WNCK_WINDOW_ACTION_MAXIMIZE, "WNCK_WINDOW_ACTION_MAXIMIZE", "maximize" }, + { WNCK_WINDOW_ACTION_UNMAXIMIZE, "WNCK_WINDOW_ACTION_UNMAXIMIZE", "unmaximize" }, + { WNCK_WINDOW_ACTION_FULLSCREEN, "WNCK_WINDOW_ACTION_FULLSCREEN", "fullscreen" }, + { WNCK_WINDOW_ACTION_ABOVE, "WNCK_WINDOW_ACTION_ABOVE", "above" }, + { WNCK_WINDOW_ACTION_BELOW, "WNCK_WINDOW_ACTION_BELOW", "below" }, + { 0, NULL, NULL } +}; + +GType +wnck_window_actions_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_flags_register_static ("WnckWindowActions", _wnck_window_actions_values); + + return type; +} + +static const GEnumValue _wnck_window_type_values[] = { + { WNCK_WINDOW_NORMAL, "WNCK_WINDOW_NORMAL", "normal" }, + { WNCK_WINDOW_DESKTOP, "WNCK_WINDOW_DESKTOP", "desktop" }, + { WNCK_WINDOW_DOCK, "WNCK_WINDOW_DOCK", "dock" }, + { WNCK_WINDOW_DIALOG, "WNCK_WINDOW_DIALOG", "dialog" }, + { WNCK_WINDOW_TOOLBAR, "WNCK_WINDOW_TOOLBAR", "toolbar" }, + { WNCK_WINDOW_MENU, "WNCK_WINDOW_MENU", "menu" }, + { WNCK_WINDOW_UTILITY, "WNCK_WINDOW_UTILITY", "utility" }, + { WNCK_WINDOW_SPLASHSCREEN, "WNCK_WINDOW_SPLASHSCREEN", "splashscreen" }, + { 0, NULL, NULL } +}; + +GType +wnck_window_type_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckWindowType", _wnck_window_type_values); + + return type; +} + +static const GEnumValue _wnck_window_gravity_values[] = { + { WNCK_WINDOW_GRAVITY_CURRENT, "WNCK_WINDOW_GRAVITY_CURRENT", "current" }, + { WNCK_WINDOW_GRAVITY_NORTHWEST, "WNCK_WINDOW_GRAVITY_NORTHWEST", "northwest" }, + { WNCK_WINDOW_GRAVITY_NORTH, "WNCK_WINDOW_GRAVITY_NORTH", "north" }, + { WNCK_WINDOW_GRAVITY_NORTHEAST, "WNCK_WINDOW_GRAVITY_NORTHEAST", "northeast" }, + { WNCK_WINDOW_GRAVITY_WEST, "WNCK_WINDOW_GRAVITY_WEST", "west" }, + { WNCK_WINDOW_GRAVITY_CENTER, "WNCK_WINDOW_GRAVITY_CENTER", "center" }, + { WNCK_WINDOW_GRAVITY_EAST, "WNCK_WINDOW_GRAVITY_EAST", "east" }, + { WNCK_WINDOW_GRAVITY_SOUTHWEST, "WNCK_WINDOW_GRAVITY_SOUTHWEST", "southwest" }, + { WNCK_WINDOW_GRAVITY_SOUTH, "WNCK_WINDOW_GRAVITY_SOUTH", "south" }, + { WNCK_WINDOW_GRAVITY_SOUTHEAST, "WNCK_WINDOW_GRAVITY_SOUTHEAST", "southeast" }, + { WNCK_WINDOW_GRAVITY_STATIC, "WNCK_WINDOW_GRAVITY_STATIC", "static" }, + { 0, NULL, NULL } +}; + +GType +wnck_window_gravity_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckWindowGravity", _wnck_window_gravity_values); + + return type; +} + +static const GFlagsValue _wnck_window_move_resize_mask_values[] = { + { WNCK_WINDOW_CHANGE_X, "WNCK_WINDOW_CHANGE_X", "x" }, + { WNCK_WINDOW_CHANGE_Y, "WNCK_WINDOW_CHANGE_Y", "y" }, + { WNCK_WINDOW_CHANGE_WIDTH, "WNCK_WINDOW_CHANGE_WIDTH", "width" }, + { WNCK_WINDOW_CHANGE_HEIGHT, "WNCK_WINDOW_CHANGE_HEIGHT", "height" }, + { 0, NULL, NULL } +}; + +GType +wnck_window_move_resize_mask_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_flags_register_static ("WnckWindowMoveResizeMask", _wnck_window_move_resize_mask_values); + + return type; +} + + +/* enumerations from "workspace.h" */ +static const GEnumValue _wnck_motion_direction_values[] = { + { WNCK_MOTION_UP, "WNCK_MOTION_UP", "up" }, + { WNCK_MOTION_DOWN, "WNCK_MOTION_DOWN", "down" }, + { WNCK_MOTION_LEFT, "WNCK_MOTION_LEFT", "left" }, + { WNCK_MOTION_RIGHT, "WNCK_MOTION_RIGHT", "right" }, + { 0, NULL, NULL } +}; + +GType +wnck_motion_direction_get_type (void) +{ + static GType type = 0; + + if (!type) + type = g_enum_register_static ("WnckMotionDirection", _wnck_motion_direction_values); + + return type; +} + + + + diff --git a/libwnck/wnck-enum-types.h b/libwnck/wnck-enum-types.h new file mode 100644 index 0000000..13ac3b2 --- /dev/null +++ b/libwnck/wnck-enum-types.h @@ -0,0 +1,52 @@ + + + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __WNCK_ENUM_TYPES_H__ +#define __WNCK_ENUM_TYPES_H__ + +G_BEGIN_DECLS + + +/* enumerations from "pager.h" */ +#define WNCK_TYPE_PAGER_DISPLAY_MODE wnck_pager_display_mode_get_type() +GType wnck_pager_display_mode_get_type (void); + +/* enumerations from "screen.h" */ +#define WNCK_TYPE___WNCK_LAYOUT_ORIENTATION _wncklayoutorientation___wnck_layout_orientation_get_type() +GType _wncklayoutorientation___wnck_layout_orientation_get_type (void); +#define WNCK_TYPE___WNCK_LAYOUT_CORNER _wncklayoutcorner___wnck_layout_corner_get_type() +GType _wncklayoutcorner___wnck_layout_corner_get_type (void); + +/* enumerations from "tasklist.h" */ +#define WNCK_TYPE_TASKLIST_GROUPING_TYPE wnck_tasklist_grouping_type_get_type() +GType wnck_tasklist_grouping_type_get_type (void); + +/* enumerations from "util.h" */ +#define WNCK_TYPE_CLIENT_TYPE wnck_client_type_get_type() +GType wnck_client_type_get_type (void); + +/* enumerations from "window.h" */ +#define WNCK_TYPE_WINDOW_STATE wnck_window_state_get_type() +GType wnck_window_state_get_type (void); +#define WNCK_TYPE_WINDOW_ACTIONS wnck_window_actions_get_type() +GType wnck_window_actions_get_type (void); +#define WNCK_TYPE_WINDOW_TYPE wnck_window_type_get_type() +GType wnck_window_type_get_type (void); +#define WNCK_TYPE_WINDOW_GRAVITY wnck_window_gravity_get_type() +GType wnck_window_gravity_get_type (void); +#define WNCK_TYPE_WINDOW_MOVE_RESIZE_MASK wnck_window_move_resize_mask_get_type() +GType wnck_window_move_resize_mask_get_type (void); + +/* enumerations from "workspace.h" */ +#define WNCK_TYPE_MOTION_DIRECTION wnck_motion_direction_get_type() +GType wnck_motion_direction_get_type (void); +G_END_DECLS + +#endif /* __WNCK_ENUM_TYPES_H__ */ + + + diff --git a/libwnck/wnck-image-menu-item-private.h b/libwnck/wnck-image-menu-item-private.h new file mode 100644 index 0000000..265289d --- /dev/null +++ b/libwnck/wnck-image-menu-item-private.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2016 Alberts Muktupāvels + * + * 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; if not, see . + */ + +#ifndef WNCK_IMAGE_MENU_ITEM_PRIVATE_H +#define WNCK_IMAGE_MENU_ITEM_PRIVATE_H + +#include +#include "window.h" + +G_BEGIN_DECLS + +#define WNCK_TYPE_IMAGE_MENU_ITEM wnck_image_menu_item_get_type () +G_DECLARE_FINAL_TYPE (WnckImageMenuItem, wnck_image_menu_item, + WNCK, IMAGE_MENU_ITEM, GtkMenuItem) + +GtkWidget *wnck_image_menu_item_new (void); + +GtkWidget *wnck_image_menu_item_new_with_label (const gchar *label); + +void wnck_image_menu_item_set_image_from_icon_pixbuf (WnckImageMenuItem *item, + GdkPixbuf *pixbuf); + +void wnck_image_menu_item_set_image_from_window (WnckImageMenuItem *item, + WnckWindow *window); + +void wnck_image_menu_item_make_label_bold (WnckImageMenuItem *item); + +void wnck_image_menu_item_make_label_normal (WnckImageMenuItem *item); + +G_END_DECLS + +#endif diff --git a/libwnck/wnck-image-menu-item.c b/libwnck/wnck-image-menu-item.c new file mode 100644 index 0000000..e8e6d87 --- /dev/null +++ b/libwnck/wnck-image-menu-item.c @@ -0,0 +1,240 @@ +/* + * Copyright (C) 2016 Alberts Muktupāvels + * + * 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; if not, see . + */ + +#include "config.h" + +#include "wnck-image-menu-item-private.h" +#include "private.h" + +#define SPACING 6 + +struct _WnckImageMenuItem +{ + GtkMenuItem parent; + + GtkWidget *box; + GtkWidget *image; + GtkWidget *accel_label; + + gchar *label; +}; + +G_DEFINE_TYPE (WnckImageMenuItem, wnck_image_menu_item, GTK_TYPE_MENU_ITEM) + +static void +wnck_image_menu_item_finalize (GObject *object) +{ + WnckImageMenuItem *item; + + item = WNCK_IMAGE_MENU_ITEM (object); + + g_clear_pointer (&item->label, g_free); + + G_OBJECT_CLASS (wnck_image_menu_item_parent_class)->finalize (object); +} + +static void +wnck_image_menu_item_get_preferred_width (GtkWidget *widget, + gint *minimum, + gint *natural) +{ + GtkWidgetClass *widget_class; + WnckImageMenuItem *item; + GtkRequisition image_requisition; + + widget_class = GTK_WIDGET_CLASS (wnck_image_menu_item_parent_class); + item = WNCK_IMAGE_MENU_ITEM (widget); + + widget_class->get_preferred_width (widget, minimum, natural); + + if (!gtk_widget_get_visible (item->image)) + return; + + gtk_widget_get_preferred_size (item->image, &image_requisition, NULL); + + if (image_requisition.width > 0) + { + *minimum -= image_requisition.width + SPACING; + *natural -= image_requisition.width + SPACING; + } +} + +static void +wnck_image_menu_item_size_allocate (GtkWidget *widget, + GtkAllocation *allocation) +{ + GtkWidgetClass *widget_class; + WnckImageMenuItem *item; + GtkRequisition image_requisition; + GtkAllocation box_allocation; + + widget_class = GTK_WIDGET_CLASS (wnck_image_menu_item_parent_class); + item = WNCK_IMAGE_MENU_ITEM (widget); + + widget_class->size_allocate (widget, allocation); + + if (!gtk_widget_get_visible (item->image)) + return; + + gtk_widget_get_preferred_size (item->image, &image_requisition, NULL); + gtk_widget_get_allocation (item->box, &box_allocation); + + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) + { + if (image_requisition.width > 0) + box_allocation.x -= image_requisition.width + SPACING; + } + else + { + if (image_requisition.width > 0) + box_allocation.x += image_requisition.width + SPACING; + } + + gtk_widget_size_allocate (item->box, &box_allocation); +} + +static const gchar * +wnck_image_menu_item_get_label (GtkMenuItem *menu_item) +{ + WnckImageMenuItem *item; + + item = WNCK_IMAGE_MENU_ITEM (menu_item); + + return item->label; +} + +static void +wnck_image_menu_item_toggle_size_request (GtkMenuItem *menu_item, + gint *requisition) +{ + WnckImageMenuItem *item; + GtkRequisition image_requisition; + + item = WNCK_IMAGE_MENU_ITEM (menu_item); + + *requisition = 0; + + if (!gtk_widget_get_visible (item->image)) + return; + + gtk_widget_get_preferred_size (item->image, &image_requisition, NULL); + + if (image_requisition.width > 0) + *requisition = image_requisition.width + SPACING; +} + +static void +wnck_image_menu_item_set_label (GtkMenuItem *menu_item, + const gchar *label) +{ + WnckImageMenuItem *item; + + item = WNCK_IMAGE_MENU_ITEM (menu_item); + + if (g_strcmp0 (item->label, label) != 0) + { + g_free (item->label); + item->label = g_strdup (label); + + gtk_label_set_text_with_mnemonic (GTK_LABEL (item->accel_label), label); + g_object_notify (G_OBJECT (menu_item), "label"); + } +} + +static void +wnck_image_menu_item_class_init (WnckImageMenuItemClass *item_class) +{ + GObjectClass *object_class; + GtkWidgetClass *widget_class; + GtkMenuItemClass *menu_item_class; + + object_class = G_OBJECT_CLASS (item_class); + widget_class = GTK_WIDGET_CLASS (item_class); + menu_item_class = GTK_MENU_ITEM_CLASS (item_class); + + object_class->finalize = wnck_image_menu_item_finalize; + + widget_class->get_preferred_width = wnck_image_menu_item_get_preferred_width; + widget_class->size_allocate = wnck_image_menu_item_size_allocate; + + menu_item_class->get_label = wnck_image_menu_item_get_label; + menu_item_class->toggle_size_request = wnck_image_menu_item_toggle_size_request; + menu_item_class->set_label = wnck_image_menu_item_set_label; +} + +static void +wnck_image_menu_item_init (WnckImageMenuItem *item) +{ + GtkAccelLabel *accel_label; + + item->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING); + gtk_container_add (GTK_CONTAINER (item), item->box); + gtk_widget_show (item->box); + + item->image = gtk_image_new (); + gtk_box_pack_start (GTK_BOX (item->box), item->image, FALSE, FALSE, 0); + + item->accel_label = gtk_accel_label_new (""); + gtk_box_pack_end (GTK_BOX (item->box), item->accel_label, TRUE, TRUE, 0); + gtk_label_set_xalign (GTK_LABEL (item->accel_label), 0.0); + gtk_widget_show (item->accel_label); + + accel_label = GTK_ACCEL_LABEL (item->accel_label); + gtk_accel_label_set_accel_widget (accel_label, GTK_WIDGET (item)); + gtk_label_set_ellipsize (GTK_LABEL (accel_label), PANGO_ELLIPSIZE_END); + gtk_label_set_use_underline (GTK_LABEL (accel_label), TRUE); +} + +GtkWidget * +wnck_image_menu_item_new (void) +{ + return g_object_new (WNCK_TYPE_IMAGE_MENU_ITEM, NULL); +} + +GtkWidget * +wnck_image_menu_item_new_with_label (const gchar *label) +{ + return g_object_new (WNCK_TYPE_IMAGE_MENU_ITEM, "label", label, NULL); +} + +void +wnck_image_menu_item_set_image_from_icon_pixbuf (WnckImageMenuItem *item, + GdkPixbuf *pixbuf) +{ + gtk_image_set_from_pixbuf (GTK_IMAGE (item->image), pixbuf); + gtk_widget_show (item->image); +} + +void +wnck_image_menu_item_set_image_from_window (WnckImageMenuItem *item, + WnckWindow *window) +{ + _wnck_selector_set_window_icon (item->image, window); + gtk_widget_show (item->image); +} + +void +wnck_image_menu_item_make_label_bold (WnckImageMenuItem *item) +{ + _make_gtk_label_bold (GTK_LABEL (item->accel_label)); +} + +void +wnck_image_menu_item_make_label_normal (WnckImageMenuItem *item) +{ + _make_gtk_label_normal (GTK_LABEL (item->accel_label)); +} diff --git a/libwnck/wnck-resources.c b/libwnck/wnck-resources.c new file mode 100644 index 0000000..ad76f91 --- /dev/null +++ b/libwnck/wnck-resources.c @@ -0,0 +1,249 @@ +#include + +#if defined (__ELF__) && ( __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) +# define SECTION __attribute__ ((section (".gresource.libwnck"), aligned (8))) +#else +# define SECTION +#endif + +static const SECTION union { const guint8 data[696]; const double alignment; void * const ptr;} libwnck_resource_data = { { + 0x47, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4b, 0x50, 0x90, 0x0b, 0x03, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xe9, 0xe2, 0xa4, 0x68, 0x05, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x76, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x49, 0x02, 0x00, 0x00, + 0xb0, 0xb7, 0x24, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x02, 0x00, 0x00, 0x06, 0x00, 0x4c, 0x00, + 0x50, 0x02, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, + 0xd4, 0xb5, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x54, 0x02, 0x00, 0x00, 0x01, 0x00, 0x4c, 0x00, + 0x58, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0xb3, 0x22, 0x63, 0xe4, 0x05, 0x00, 0x00, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x08, 0x00, 0x76, 0x00, + 0x68, 0x02, 0x00, 0x00, 0xa7, 0x02, 0x00, 0x00, + 0x29, 0x18, 0x23, 0x4a, 0x02, 0x00, 0x00, 0x00, + 0xa7, 0x02, 0x00, 0x00, 0x08, 0x00, 0x4c, 0x00, + 0xb0, 0x02, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, + 0x6f, 0x72, 0x67, 0x2f, 0x02, 0x00, 0x00, 0x00, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x69, 0x63, 0x6f, 0x6e, 0x2e, 0x70, 0x6e, 0x67, + 0x59, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, + 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff, + 0x61, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, + 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, + 0x00, 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0xa0, 0xbd, 0xa7, 0x93, + 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, + 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, + 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, + 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xd8, 0x08, + 0x13, 0x13, 0x03, 0x23, 0xd7, 0x4f, 0xb8, 0xca, + 0x00, 0x00, 0x00, 0xd9, 0x49, 0x44, 0x41, 0x54, + 0x38, 0xcb, 0xd5, 0x92, 0x3d, 0x6e, 0x02, 0x31, + 0x14, 0x84, 0xbf, 0x79, 0x32, 0x57, 0xa0, 0x8b, + 0xb4, 0x22, 0xa2, 0xa2, 0xa1, 0x46, 0x11, 0xa2, + 0x44, 0x94, 0x48, 0xe9, 0x29, 0xb9, 0x01, 0x70, + 0x01, 0x22, 0xc4, 0x51, 0x90, 0x28, 0x57, 0xa9, + 0x53, 0x70, 0x03, 0xa4, 0x94, 0xe9, 0x73, 0x87, + 0x98, 0xc2, 0xde, 0xc5, 0x20, 0x7e, 0x76, 0xd3, + 0x20, 0xa6, 0x7a, 0xb6, 0xdf, 0x9b, 0x37, 0x33, + 0x32, 0x3c, 0x1a, 0x02, 0xc8, 0x46, 0x1f, 0xfe, + 0x3f, 0xc3, 0x3f, 0xf9, 0x42, 0xae, 0x38, 0x8c, + 0xdf, 0x87, 0xb5, 0x86, 0xb7, 0x9b, 0x4f, 0x00, + 0x5c, 0x7a, 0xf9, 0xb5, 0xdb, 0x57, 0x1a, 0xee, + 0xf7, 0x3a, 0x65, 0xed, 0x00, 0xa6, 0x83, 0x3f, + 0x66, 0x93, 0x2e, 0xdf, 0x6f, 0x0d, 0x04, 0x48, + 0xc2, 0x7b, 0x8f, 0x24, 0x90, 0x10, 0xc2, 0x92, + 0xba, 0x95, 0xb5, 0x69, 0xfe, 0xe6, 0xcc, 0xf3, + 0x33, 0x05, 0x26, 0x03, 0x81, 0x10, 0xc8, 0x23, + 0x84, 0x74, 0x1c, 0x2e, 0x7b, 0x12, 0x9c, 0x12, + 0x58, 0xd8, 0x10, 0xb2, 0xf5, 0x44, 0x36, 0x90, + 0x61, 0x0a, 0xca, 0x62, 0xee, 0x97, 0x09, 0x14, + 0x25, 0x06, 0x0b, 0xf1, 0x1c, 0x37, 0x86, 0xfa, + 0x2e, 0x81, 0x1d, 0x1b, 0x63, 0x06, 0x29, 0x69, + 0x69, 0x2f, 0x55, 0x7d, 0x6a, 0xc1, 0x30, 0x59, + 0xf0, 0x5c, 0x11, 0xee, 0xda, 0x83, 0xc9, 0x50, + 0xdc, 0xa8, 0x22, 0x5c, 0x19, 0xba, 0x45, 0x90, + 0xbd, 0xbc, 0xd6, 0xfe, 0x8d, 0x25, 0xc1, 0x6a, + 0xbd, 0xe4, 0x39, 0x71, 0x00, 0x9a, 0xa0, 0x1c, + 0xbf, 0x42, 0x6d, 0x1d, 0xcd, 0x00, 0x00, 0x00, + 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82, 0x00, 0x00, 0x28, 0x75, 0x75, 0x61, 0x79, + 0x29, 0x67, 0x6e, 0x6f, 0x6d, 0x65, 0x2f, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x6e, 0x63, 0x6b, + 0x2e, 0x63, 0x73, 0x73, 0x00, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2e, 0x77, 0x6e, 0x63, 0x6b, 0x2d, 0x6e, 0x65, + 0x65, 0x64, 0x73, 0x2d, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x62, + 0x6f, 0x6c, 0x64, 0x3b, 0x0a, 0x7d, 0x0a, 0x00, + 0x00, 0x28, 0x75, 0x75, 0x61, 0x79, 0x29, 0x6c, + 0x69, 0x62, 0x77, 0x6e, 0x63, 0x6b, 0x2f, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 +} }; + +static GStaticResource static_resource = { libwnck_resource_data.data, sizeof (libwnck_resource_data.data), NULL, NULL, NULL }; +extern GResource *libwnck_get_resource (void); +GResource *libwnck_get_resource (void) +{ + return g_static_resource_get_resource (&static_resource); +} +/* + If G_HAS_CONSTRUCTORS is true then the compiler support *both* constructors and + destructors, in a sane way, including e.g. on library unload. If not you're on + your own. + + Some compilers need #pragma to handle this, which does not work with macros, + so the way you need to use this is (for constructors): + + #ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA + #pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(my_constructor) + #endif + G_DEFINE_CONSTRUCTOR(my_constructor) + static void my_constructor(void) { + ... + } + +*/ + +#ifndef __GTK_DOC_IGNORE__ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR(_func) static void __attribute__((constructor)) _func (void); +#define G_DEFINE_DESTRUCTOR(_func) static void __attribute__((destructor)) _func (void); + +#elif defined (_MSC_VER) && (_MSC_VER >= 1500) +/* Visual studio 2008 and later has _Pragma */ + +#define G_HAS_CONSTRUCTORS 1 + +/* We do some weird things to avoid the constructors being optimized + * away on VS2015 if WholeProgramOptimization is enabled. First we + * make a reference to the array from the wrapper to make sure its + * references. Then we use a pragma to make sure the wrapper function + * symbol is always included at the link stage. Also, the symbols + * need to be extern (but not dllexport), even though they are not + * really used from another object file. + */ + +/* We need to account for differences between the mangling of symbols + * for Win32 (x86) and x64 programs, as symbols on Win32 are prefixed + * with an underscore but symbols on x64 are not. + */ +#ifdef _WIN64 +#define G_MSVC_SYMBOL_PREFIX "" +#else +#define G_MSVC_SYMBOL_PREFIX "_" +#endif + +#define G_DEFINE_CONSTRUCTOR(_func) G_MSVC_CTOR (_func, G_MSVC_SYMBOL_PREFIX) +#define G_DEFINE_DESTRUCTOR(_func) G_MSVC_DTOR (_func, G_MSVC_SYMBOL_PREFIX) + +#define G_MSVC_CTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _wrapper(void) { _func(); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_wrapper")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _wrapper; + +#define G_MSVC_DTOR(_func,_sym_prefix) \ + static void _func(void); \ + extern int (* _array ## _func)(void); \ + int _func ## _constructor(void) { atexit (_func); g_slist_find (NULL, _array ## _func); return 0; } \ + __pragma(comment(linker,"/include:" _sym_prefix # _func "_constructor")) \ + __pragma(section(".CRT$XCU",read)) \ + __declspec(allocate(".CRT$XCU")) int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined (_MSC_VER) + +#define G_HAS_CONSTRUCTORS 1 + +/* Pre Visual studio 2008 must use #pragma section */ +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _wrapper(void) { _func(); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (*p)(void) = _func ## _wrapper; + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + section(".CRT$XCU",read) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); \ + static int _func ## _constructor(void) { atexit (_func); return 0; } \ + __declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor; + +#elif defined(__SUNPRO_C) + +/* This is not tested, but i believe it should work, based on: + * http://opensource.apple.com/source/OpenSSL098/OpenSSL098-35/src/fips/fips_premain.c + */ + +#define G_HAS_CONSTRUCTORS 1 + +#define G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA 1 +#define G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA 1 + +#define G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(_func) \ + init(_func) +#define G_DEFINE_CONSTRUCTOR(_func) \ + static void _func(void); + +#define G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(_func) \ + fini(_func) +#define G_DEFINE_DESTRUCTOR(_func) \ + static void _func(void); + +#else + +/* constructors not supported for this compiler */ + +#endif + +#endif /* __GTK_DOC_IGNORE__ */ + +#ifdef G_HAS_CONSTRUCTORS + +#ifdef G_DEFINE_CONSTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_CONSTRUCTOR_PRAGMA_ARGS(resource_constructor) +#endif +G_DEFINE_CONSTRUCTOR(resource_constructor) +#ifdef G_DEFINE_DESTRUCTOR_NEEDS_PRAGMA +#pragma G_DEFINE_DESTRUCTOR_PRAGMA_ARGS(resource_destructor) +#endif +G_DEFINE_DESTRUCTOR(resource_destructor) + +#else +#warning "Constructor not supported on this compiler, linking in resources will not work" +#endif + +static void resource_constructor (void) +{ + g_static_resource_init (&static_resource); +} + +static void resource_destructor (void) +{ + g_static_resource_fini (&static_resource); +} diff --git a/libwnck/wnck-resources.h b/libwnck/wnck-resources.h new file mode 100644 index 0000000..b5c3ff6 --- /dev/null +++ b/libwnck/wnck-resources.h @@ -0,0 +1,7 @@ +#ifndef __RESOURCE_libwnck_H__ +#define __RESOURCE_libwnck_H__ + +#include + +extern GResource *libwnck_get_resource (void); +#endif diff --git a/libwnck/wnck-urgency-monitor.c b/libwnck/wnck-urgency-monitor.c new file mode 100644 index 0000000..f4eecd1 --- /dev/null +++ b/libwnck/wnck-urgency-monitor.c @@ -0,0 +1,224 @@ +/* vim: set sw=2 et: */ +/* + * Copyright (C) 2009 Vincent Untz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Authors: + * Vincent Untz + */ + +#include + +#include +#include + +#include + +#include + +static void +status_icon_activated (GtkStatusIcon *icon, + WnckWindow *window) +{ + WnckWorkspace *workspace; + guint32 timestamp; + + /* We're in an activate callback, so gtk_get_current_time() works... */ + timestamp = gtk_get_current_event_time (); + + /* FIXME: THIS IS SICK AND WRONG AND BUGGY. See the end of + * http://mail.gnome.org/archives/wm-spec-list/2005-July/msg00032.html + * There should only be *one* activate call. + */ + workspace = wnck_window_get_workspace (window); + if (workspace) + wnck_workspace_activate (workspace, timestamp); + + wnck_window_activate (window, timestamp); +} + +static GtkStatusIcon * +status_icon_get (WnckWindow *window) +{ + return g_object_get_data (G_OBJECT (window), "wnck-urgency-icon"); +} + +static void +status_icon_update (WnckWindow *window) +{ + GtkStatusIcon *icon; + + icon = status_icon_get (window); + + if (icon == NULL) + { + return; + } + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + if (wnck_window_get_icon_is_fallback (window)) + { + gtk_status_icon_set_from_icon_name (icon, "dialog-information"); + } + else + { + gtk_status_icon_set_from_pixbuf (icon, + wnck_window_get_mini_icon (window)); + } + + gtk_status_icon_set_tooltip_text (icon, wnck_window_get_name (window)); + G_GNUC_END_IGNORE_DEPRECATIONS +} + +static void +status_icon_create (WnckWindow *window) +{ + GtkStatusIcon *icon; + + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + icon = gtk_status_icon_new (); + G_GNUC_END_IGNORE_DEPRECATIONS + + g_object_set_data (G_OBJECT (window), "wnck-urgency-icon", icon); + + g_signal_connect (icon, "activate", + G_CALLBACK (status_icon_activated), window); + + status_icon_update (window); +} + +static void +status_icon_remove (WnckWindow *window) +{ + GtkStatusIcon *icon; + + icon = status_icon_get (window); + if (icon != NULL) + { + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gtk_status_icon_set_visible (icon, FALSE); + G_GNUC_END_IGNORE_DEPRECATIONS + + g_object_unref (icon); + g_object_set_data (G_OBJECT (window), "wnck-urgency-icon", NULL); + } +} + +static void +window_state_changed (WnckWindow *window, + WnckWindowState changed_mask, + WnckWindowState new_state, + gpointer data) +{ + GtkStatusIcon *icon; + + if (! + (changed_mask & + (WNCK_WINDOW_STATE_DEMANDS_ATTENTION | + WNCK_WINDOW_STATE_URGENT))) + return; + + icon = status_icon_get (window); + + if (wnck_window_or_transient_needs_attention (window)) + { + if (icon == NULL) + { + status_icon_create (window); + } + } + else + { + status_icon_remove (window); + } +} + +static void +window_icon_changed (WnckWindow *window, + gpointer data) +{ + status_icon_update (window); +} + +static void +window_name_changed (WnckWindow *window, + gpointer data) +{ + status_icon_update (window); +} + +static void +connect_to_window (WnckScreen *screen, + WnckWindow *window) +{ + if (wnck_window_or_transient_needs_attention (window)) + { + status_icon_create (window); + } + + g_signal_connect (window, "state_changed", + G_CALLBACK (window_state_changed), NULL); + g_signal_connect (window, "icon_changed", + G_CALLBACK (window_icon_changed), NULL); + g_signal_connect (window, "name_changed", + G_CALLBACK (window_name_changed), NULL); +} + +static void +disconnect_from_window (WnckScreen *screen, + WnckWindow *window) +{ + status_icon_remove (window); +} + +int +main (int argc, char **argv) +{ + GOptionContext *ctxt; + GError *error; + WnckScreen *screen; + + ctxt = g_option_context_new (NULL); + g_option_context_set_summary (ctxt, "Monitor windows with the urgency hint " + "set, and display a notification icon " + "for each of them."); + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + + error = NULL; + if (!g_option_context_parse (ctxt, &argc, &argv, &error)) + { + g_printerr ("Error while parsing arguments: %s\n", error->message); + g_option_context_free (ctxt); + g_error_free (error); + return 1; + } + + g_option_context_free (ctxt); + ctxt = NULL; + + gtk_init (&argc, &argv); + + wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER); + + screen = wnck_screen_get_default (); + g_signal_connect (screen, "window_opened", + G_CALLBACK (connect_to_window), NULL); + g_signal_connect (screen, "window_closed", + G_CALLBACK (disconnect_from_window), NULL); + + gtk_main (); + + return 0; +} diff --git a/libwnck/wnck.css b/libwnck/wnck.css new file mode 100644 index 0000000..9e658b1 --- /dev/null +++ b/libwnck/wnck.css @@ -0,0 +1,3 @@ +.wnck-needs-attention { + font-weight: bold; +} diff --git a/libwnck/wnck.gresource.xml b/libwnck/wnck.gresource.xml new file mode 100644 index 0000000..2dd9737 --- /dev/null +++ b/libwnck/wnck.gresource.xml @@ -0,0 +1,7 @@ + + + + default_icon.png + wnck.css + + diff --git a/libwnck/wnckprop.c b/libwnck/wnckprop.c new file mode 100644 index 0000000..c5023da --- /dev/null +++ b/libwnck/wnckprop.c @@ -0,0 +1,2066 @@ +/* vim: set sw=2 et: */ +/* + * Copyright (C) 2007 Vincent Untz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Authors: + * Vincent Untz + * + * Some of this code is based on code from gnome-panel/panel-force-quit.c + * This part of the code was written by Mark McLoughlin and + * copyrighted by Sun. Sun (through Glynn Foster ) + * agreed to relicense it from the GPL to the LGPL. + */ + +/* TODO: + * uncomment code that prints the workspace layout when API is public. + * uncomment code for wnck_class_group_get_icon_is_fallback() when API is done + * + * add --list-screen + */ +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include + +enum { + INVALID_MODE, + SCREEN_READ_MODE, + SCREEN_LIST_MODE, + SCREEN_WRITE_MODE, + WORKSPACE_READ_MODE, + WORKSPACE_LIST_MODE, + WORKSPACE_WRITE_MODE, + APPLICATION_READ_MODE, + APPLICATION_LIST_MODE, + CLASS_GROUP_READ_MODE, + CLASS_GROUP_LIST_MODE, + WINDOW_READ_MODE, + WINDOW_WRITE_MODE +} mode = INVALID_MODE; + +gboolean option_xid = FALSE; +gboolean option_application = FALSE; +gboolean option_class_group = FALSE; +gboolean option_workspace = FALSE; +gboolean option_screen = FALSE; + +gboolean get_from_user = TRUE; +WnckWindow *got_from_user = NULL; + +gulong xid = 0; +gulong interact_app_xid = 0; +char *interact_class_group = NULL; +int interact_space = -1; +int interact_screen = -1; + +gboolean list = FALSE; +gboolean list_workspaces = FALSE; + +int set_n_workspaces = -1; +int set_workspace_rows = 0; +int set_workspace_cols = 0; +gboolean set_show_desktop = FALSE; +gboolean set_unshow_desktop = FALSE; +int set_viewport_x = -1; +int set_viewport_y = -1; + +gboolean set_activate = FALSE; +char *set_change_name = NULL; + +gboolean set_minimize = FALSE; +gboolean set_unminimize = FALSE; +gboolean set_maximize = FALSE; +gboolean set_unmaximize = FALSE; +gboolean set_maximize_horizontally = FALSE; +gboolean set_unmaximize_horizontally = FALSE; +gboolean set_maximize_vertically = FALSE; +gboolean set_unmaximize_vertically = FALSE; +gboolean set_keyboard_move = FALSE; +gboolean set_keyboard_resize = FALSE; +gboolean set_close = FALSE; + +gboolean set_fullscreen = FALSE; +gboolean set_unfullscreen = FALSE; +gboolean set_make_above = FALSE; +gboolean set_unmake_above = FALSE; +gboolean set_make_below = FALSE; +gboolean set_unmake_below = FALSE; +gboolean set_shade = FALSE; +gboolean set_unshade = FALSE; +gboolean set_stick = FALSE; +gboolean set_unstick = FALSE; +gboolean set_skip_pager = FALSE; +gboolean set_unskip_pager = FALSE; +gboolean set_skip_tasklist = FALSE; +gboolean set_unskip_tasklist = FALSE; +gboolean set_pin = FALSE; +gboolean set_unpin = FALSE; +int set_workspace = -1; +int set_x = G_MAXINT; +int set_y = G_MAXINT; +int set_width = -1; +int set_height = -1; +char *set_window_type = NULL; +WnckWindowType set_window_type_t = WNCK_WINDOW_NORMAL; + +static gboolean +option_parse (const char *option_name, + const char *value, + gpointer data, + GError **error); + +static GOptionEntry main_entries[] = { + { "window", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + N_("X window ID of the window to examine or modify"), N_("XID") }, + { "application", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + /* Translators: A group leader is the window that is the "owner" of a + * group of windows, ie: if you have multiple windows in one + * application, one window has some information about the application + * (like the application name). */ + N_("X window ID of the group leader of an application to examine"), + N_("XID") }, + { "class", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + /* Translators: A class is like a "family". E.g., all gvim windows + * are of the same class. */ + N_("Class resource of the class group to examine"), N_("CLASS") }, + { "workspace", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + N_("NUMBER of the workspace to examine or modify"), N_("NUMBER") }, + { "screen", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + N_("NUMBER of the screen to examine or modify"), N_("NUMBER") }, + { "xid", 0, G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_CALLBACK, option_parse, + N_("Alias of --window"), N_("XID") }, + { NULL } +}; + +static GOptionEntry list_entries[] = { + { "list", 0, 0, G_OPTION_ARG_NONE, &list, + /* Translators: A class is like a "family". E.g., all gvim windows + * are of the same class. */ + N_("List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")"), NULL }, + { "list-workspaces", 0, 0, G_OPTION_ARG_NONE, &list_workspaces, + N_("List workspaces of the screen (output format: \"Number: Workspace Name\")"), NULL }, + { NULL } +}; + +static GOptionEntry screen_entries[] = { + { "set-n-workspaces", 0, 0, G_OPTION_ARG_INT, &set_n_workspaces, + N_("Change the number of workspaces of the screen to NUMBER"), N_("NUMBER") }, + { "set-workspace-rows", 0, 0, G_OPTION_ARG_INT, &set_workspace_rows, + N_("Change the workspace layout of the screen to use NUMBER rows"), N_("NUMBER") }, + { "set-workspace-columns", 0, 0, G_OPTION_ARG_INT, &set_workspace_cols, + N_("Change the workspace layout of the screen to use NUMBER columns"), N_("NUMBER") }, + { "show-desktop", 0, 0, G_OPTION_ARG_NONE, &set_show_desktop, + N_("Show the desktop"), NULL }, + { "unshow-desktop", 0, 0, G_OPTION_ARG_NONE, &set_unshow_desktop, + N_("Stop showing the desktop"), NULL }, + { "move-viewport-x", 0, 0, G_OPTION_ARG_INT, &set_viewport_x, + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + N_("Move the viewport of the current workspace to X coordinate X"), N_("X") }, + { "move-viewport-y", 0, 0, G_OPTION_ARG_INT, &set_viewport_y, + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + N_("Move the viewport of the current workspace to Y coordinate Y"), N_("Y") }, + { NULL } +}; + +static GOptionEntry window_entries[] = { + { "minimize", 0, 0, G_OPTION_ARG_NONE, &set_minimize, + N_("Minimize the window"), NULL }, + { "unminimize", 0, 0, G_OPTION_ARG_NONE, &set_unminimize, + N_("Unminimize the window"), NULL }, + { "maximize", 0, 0, G_OPTION_ARG_NONE, &set_maximize, + N_("Maximize the window"), NULL }, + { "unmaximize", 0, 0, G_OPTION_ARG_NONE, &set_unmaximize, + N_("Unmaximize the window"), NULL }, + { "maximize-horizontally", 0, 0, G_OPTION_ARG_NONE, &set_maximize_horizontally, + N_("Maximize horizontally the window"), NULL }, + { "unmaximize-horizontally", 0, 0, G_OPTION_ARG_NONE, &set_unmaximize_horizontally, + N_("Unmaximize horizontally the window"), NULL }, + { "maximize-vertically", 0, 0, G_OPTION_ARG_NONE, &set_maximize_vertically, + N_("Maximize vertically the window"), NULL }, + { "unmaximize-vertically", 0, 0, G_OPTION_ARG_NONE, &set_unmaximize_vertically, + N_("Unmaximize vertically the window"), NULL }, + { "keyboard-move", 0, 0, G_OPTION_ARG_NONE, &set_keyboard_move, + N_("Start moving the window via the keyboard"), NULL }, + { "keyboard-resize", 0, 0, G_OPTION_ARG_NONE, &set_keyboard_resize, + N_("Start resizing the window via the keyboard"), NULL }, + { "activate", 0, G_OPTION_FLAG_NOALIAS, G_OPTION_ARG_NONE, &set_activate, + N_("Activate the window"), NULL }, + { "close", 0, 0, G_OPTION_ARG_NONE, &set_close, + N_("Close the window"), NULL }, + + { "make-fullscreen", 0, 0, G_OPTION_ARG_NONE, &set_fullscreen, + N_("Make the window fullscreen"), NULL }, + { "unmake-fullscreen", 0, 0, G_OPTION_ARG_NONE, &set_unfullscreen, + N_("Make the window quit fullscreen mode"), NULL }, + { "make-above", 0, 0, G_OPTION_ARG_NONE, &set_make_above, + N_("Make the window always on top"), NULL }, + { "unmake-above", 0, 0, G_OPTION_ARG_NONE, &set_unmake_above, + N_("Make the window not always on top"), NULL }, + { "make-below", 0, 0, G_OPTION_ARG_NONE, &set_make_below, + N_("Make the window below other windows"), NULL }, + { "unmake-below", 0, 0, G_OPTION_ARG_NONE, &set_unmake_below, + N_("Make the window not below other windows"), NULL }, + { "shade", 0, 0, G_OPTION_ARG_NONE, &set_shade, + N_("Shade the window"), NULL }, + { "unshade", 0, 0, G_OPTION_ARG_NONE, &set_unshade, + N_("Unshade the window"), NULL }, + { "stick", 0, 0, G_OPTION_ARG_NONE, &set_stick, + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + N_("Make the window have a fixed position in the viewport"), NULL }, + { "unstick", 0, 0, G_OPTION_ARG_NONE, &set_unstick, + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + N_("Make the window not have a fixed position in the viewport"), NULL }, + { "skip-pager", 0, 0, G_OPTION_ARG_NONE, &set_skip_pager, + /* Translators: A pager is the technical term for the workspace + * switcher. It's a representation of all workspaces with windows + * inside it. Please make sure that the translation is in sync with + * gnome-panel, where this term is also used in translatable strings + */ + N_("Make the window not appear in pagers"), NULL }, + { "unskip-pager", 0, 0, G_OPTION_ARG_NONE, &set_unskip_pager, + /* Translators: A pager is the technical term for the workspace + * switcher. It's a representation of all workspaces with windows + * inside it. Please make sure that the translation is in sync with + * gnome-panel, where this term is also used in translatable strings + */ + N_("Make the window appear in pagers"), NULL }, + { "skip-tasklist", 0, 0, G_OPTION_ARG_NONE, &set_skip_tasklist, + /* Translators: "tasklist" is the list of running applications (the + * window list) */ + N_("Make the window not appear in tasklists"), NULL }, + { "unskip-tasklist", 0, 0, G_OPTION_ARG_NONE, &set_unskip_tasklist, + /* Translators: "tasklist" is the list of running applications (the + * window list) */ + N_("Make the window appear in tasklists"), NULL }, + { "pin", 0, 0, G_OPTION_ARG_NONE, &set_pin, + N_("Make the window visible on all workspaces"), NULL }, + { "unpin", 0, 0, G_OPTION_ARG_NONE, &set_unpin, + N_("Make the window visible on the current workspace only"), NULL }, + { "set-workspace", 0, 0, G_OPTION_ARG_INT, &set_workspace, + N_("Move the window to workspace NUMBER (first workspace is 0)"), N_("NUMBER") }, + { "set-x", 0, 0, G_OPTION_ARG_INT, &set_x, + N_("Change the X coordinate of the window to X"), N_("X") }, + { "set-y", 0, 0, G_OPTION_ARG_INT, &set_y, + N_("Change the Y coordinate of the window to Y"), N_("Y") }, + { "set-width", 0, 0, G_OPTION_ARG_INT, &set_width, + N_("Change the width of the window to WIDTH"), N_("WIDTH") }, + { "set-height", 0, 0, G_OPTION_ARG_INT, &set_height, + N_("Change the height of the window to HEIGHT"), N_("HEIGHT") }, + { "set-window-type", 0, 0, G_OPTION_ARG_STRING, &set_window_type, + /* Translators: do not translate "normal, desktop, dock..." */ + N_("Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)"), N_("TYPE") }, + { NULL } +}; + +static GOptionEntry space_entries[] = { + { "change-name", 0, 0, G_OPTION_ARG_STRING, &set_change_name, + N_("Change the name of the workspace to NAME"), N_("NAME") }, + { "activate", 0, G_OPTION_FLAG_NOALIAS, G_OPTION_ARG_NONE, &set_activate, + N_("Activate the workspace"), NULL }, + { NULL } +}; + +static void clean_up (void); + +/* this part is mostly stolen from xutils.c */ +typedef struct +{ + Window window; + Atom timestamp_prop_atom; +} TimeStampInfo; + +static Bool +timestamp_predicate (Display *display, + XEvent *xevent, + XPointer arg) +{ + TimeStampInfo *info = (TimeStampInfo *)arg; + + if (xevent->type == PropertyNotify && + xevent->xproperty.window == info->window && + xevent->xproperty.atom == info->timestamp_prop_atom) + return True; + + return False; +} + +static guint32 +get_xserver_timestamp (WnckScreen *screen) +{ + Display *display; + int number; + Screen *xscreen; + TimeStampInfo info; + unsigned char c = 'a'; + XEvent xevent; + + display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); + number = wnck_screen_get_number (screen); + xscreen = ScreenOfDisplay (display, number); + + info.window = XCreateSimpleWindow (display, + RootWindowOfScreen (xscreen), + 0, 0, 10, 10, 0, + WhitePixel (display, number), + WhitePixel (display, number)); + info.timestamp_prop_atom = XInternAtom (display, "_TIMESTAMP_PROP", + FALSE); + + XSelectInput (display, info.window, PropertyChangeMask); + + XChangeProperty (display, info.window, + info.timestamp_prop_atom, info.timestamp_prop_atom, + 8, PropModeReplace, &c, 1); + + XIfEvent (display, &xevent, + timestamp_predicate, (XPointer)&info); + + XDestroyWindow (display, info.window); + + XSync (display, False); + + return xevent.xproperty.time; +} +/* end of stolen code */ + +static gboolean +option_parse (const char *option_name, + const char *value, + gpointer data, + GError **error) +{ + char *end; + + /* skip "--" */ + option_name += 2; + + if (strcmp (option_name, "window") == 0 || strcmp (option_name, "xid") == 0) + { + gulong xid_buf; + + option_xid = TRUE; + + if (value) + { + get_from_user = FALSE; + + xid_buf = strtoul (value, &end, 10); + if (end && end[0] == '\0') + xid = xid_buf; + else + { + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, + _("Invalid value \"%s\" for --%s"), + value, option_name); + return FALSE; + } + } + + return TRUE; + } + else if (strcmp (option_name, "application") == 0) + { + gulong xid_buf; + + option_application = TRUE; + + if (value) + { + get_from_user = FALSE; + + xid_buf = strtoul (value, &end, 10); + if (end && end[0] == '\0') + interact_app_xid = xid_buf; + else + { + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, + _("Invalid value \"%s\" for --%s"), + value, option_name); + return FALSE; + } + } + + return TRUE; + } + else if (strcmp (option_name, "class") == 0) + { + option_class_group = TRUE; + + if (value) + { + get_from_user = FALSE; + + interact_class_group = g_strdup (value); + } + + return TRUE; + } + else if (strcmp (option_name, "workspace") == 0) + { + int space_buf; + + option_workspace = TRUE; + get_from_user = FALSE; + + if (value) + { + space_buf = strtol (value, &end, 10); + if (end && end[0] == '\0') + interact_space = space_buf; + else + { + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, + _("Invalid value \"%s\" for --%s"), + value, option_name); + return FALSE; + } + } + + return TRUE; + } + else if (strcmp (option_name, "screen") == 0) + { + int screen_buf; + + option_screen = TRUE; + get_from_user = FALSE; + + if (value) + { + screen_buf = strtol (value, &end, 10); + if (end && end[0] == '\0') + interact_screen = screen_buf; + else + { + g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED, + _("Invalid value \"%s\" for --%s"), + value, option_name); + return FALSE; + } + } + + return TRUE; + } + else + g_assert_not_reached (); + + return FALSE; +} + +static gboolean +set_mode (int new_mode, + const char *option, + gboolean use_list) +{ + switch (mode) + { + case INVALID_MODE: + if (use_list) + g_assert_not_reached (); + + mode = new_mode; + break; + case SCREEN_READ_MODE: + if (new_mode == SCREEN_READ_MODE || new_mode == SCREEN_WRITE_MODE) + mode = new_mode; + else if (use_list) + mode = SCREEN_LIST_MODE; + else + { + g_printerr (_("Conflicting options are present: screen %d should " + "be interacted with, but --%s has been used\n"), + interact_screen, option); + return FALSE; + } + break; + case SCREEN_LIST_MODE: + if (new_mode != SCREEN_LIST_MODE) + { + g_printerr (_("Conflicting options are present: windows or " + "workspaces of screen %d should be listed, " + "but --%s has been used\n"), + interact_screen, option); + return FALSE; + } + break; + case SCREEN_WRITE_MODE: + if (new_mode != SCREEN_WRITE_MODE) + { + g_printerr (_("Conflicting options are present: screen %d should " + "be interacted with, but --%s has been used\n"), + interact_screen, option); + return FALSE; + } + break; + case WORKSPACE_READ_MODE: + if (new_mode == WORKSPACE_READ_MODE || new_mode == WORKSPACE_WRITE_MODE) + mode = new_mode; + else if (use_list) + mode = WORKSPACE_LIST_MODE; + else + { + g_printerr (_("Conflicting options are present: workspace %d " + "should be interacted with, but --%s has been " + "used\n"), + interact_space, option); + return FALSE; + } + break; + case WORKSPACE_LIST_MODE: + if (new_mode != WORKSPACE_LIST_MODE) + { + g_printerr (_("Conflicting options are present: windows of " + "workspace %d should be listed, but --%s has been " + "used\n"), + interact_space, option); + return FALSE; + } + break; + case WORKSPACE_WRITE_MODE: + if (new_mode != WORKSPACE_WRITE_MODE) + { + g_printerr (_("Conflicting options are present: workspace %d " + "should be interacted with, but --%s has been " + "used\n"), + interact_space, option); + return FALSE; + } + break; + case APPLICATION_READ_MODE: + if (use_list) + mode = APPLICATION_LIST_MODE; + else if (new_mode != APPLICATION_READ_MODE) + { + g_printerr (_("Conflicting options are present: an application " + "should be interacted with, but --%s has been " + "used\n"), + option); + return FALSE; + } + break; + case APPLICATION_LIST_MODE: + if (new_mode != APPLICATION_LIST_MODE) + { + g_printerr (_("Conflicting options are present: windows of an " + "application should be listed, but --%s has been " + "used\n"), + option); + return FALSE; + } + break; + case CLASS_GROUP_READ_MODE: + if (use_list) + mode = CLASS_GROUP_LIST_MODE; + else if (new_mode != CLASS_GROUP_READ_MODE) + { + /* Translators: A class is like a "family". E.g., all gvim windows + * are of the same class. */ + g_printerr (_("Conflicting options are present: class group " + "\"%s\" should be interacted with, but --%s has " + "been used\n"), + interact_class_group, option); + return FALSE; + } + break; + case CLASS_GROUP_LIST_MODE: + if (new_mode != CLASS_GROUP_LIST_MODE) + { + /* Translators: A class is like a "family". E.g., all gvim windows + * are of the same class. */ + g_printerr (_("Conflicting options are present: windows of class " + "group \"%s\" should be listed, but --%s has " + "been used\n"), + interact_class_group, option); + return FALSE; + } + break; + case WINDOW_READ_MODE: + if (new_mode == WINDOW_READ_MODE || new_mode == WINDOW_WRITE_MODE) + mode = new_mode; + else + { + g_printerr (_("Conflicting options are present: a window should " + "be interacted with, but --%s has been used\n"), + option); + return FALSE; + } + break; + case WINDOW_WRITE_MODE: + if (new_mode != WINDOW_WRITE_MODE) + { + g_printerr (_("Conflicting options are present: a window should " + "be interacted with, but --%s has been used\n"), + option); + return FALSE; + } + break; + default: + g_assert_not_reached (); + } + + return TRUE; +} + +static gboolean +validate_options (void) +{ +#define CHECK_DUAL_OPTIONS(shortvar, mode) \ + if (set_##shortvar && set_un##shortvar) \ + { \ + g_printerr (_("Conflicting options are present: --%s and --%s\n"),\ + #shortvar, "un"#shortvar); \ + return FALSE; \ + } \ + if (set_##shortvar) \ + { \ + if (!set_mode (mode, #shortvar, FALSE)) \ + return FALSE; \ + } \ + if (set_un##shortvar) \ + { \ + if (!set_mode (mode, "un"#shortvar, FALSE)) \ + return FALSE; \ + } + +#define CHECK_BOOL(shortvar, name, mode) \ + if (set_##shortvar) \ + { \ + if (!set_mode (mode, name, FALSE)) \ + return FALSE; \ + } + +#define CHECK_BOOL_REAL(var, name, mode) \ + if (var) \ + { \ + if (!set_mode (mode, name, FALSE)) \ + return FALSE; \ + } + +#define CHECK_INT(var, name, mode) \ + if (var != G_MAXINT) \ + { \ + if (!set_mode (mode, name, FALSE)) \ + return FALSE; \ + } + +#define CHECK_POSITIVE_STRICT_INT(var, name, mode) \ + if (var != -1 && var <= 0) \ + { \ + g_printerr (_("Invalid argument \"%d\" for --%s: the argument must be strictly positive\n"), \ + var, name); \ + return FALSE; \ + } \ + if (var != -1) \ + { \ + if (!set_mode (mode, name, FALSE)) \ + return FALSE; \ + } + +#define CHECK_POSITIVE_INT(var, name, mode) \ + if (var != -1 && var < 0) \ + { \ + g_printerr (_("Invalid argument \"%d\" for --%s: the argument must be positive\n"), \ + var, name); \ + return FALSE; \ + } \ + if (var != -1) \ + { \ + if (!set_mode (mode, name, FALSE)) \ + return FALSE; \ + } + + if (option_xid) + mode = WINDOW_READ_MODE; + if (option_application) + if (!set_mode (APPLICATION_READ_MODE, "application", FALSE)) + return FALSE; + if (option_class_group) + if (!set_mode (CLASS_GROUP_READ_MODE, "class", FALSE)) + return FALSE; + if (option_workspace) + if (!set_mode (WORKSPACE_READ_MODE, "workspace", FALSE)) + return FALSE; + if (option_screen) + if (!set_mode (SCREEN_READ_MODE, "screen", FALSE)) + return FALSE; + + CHECK_BOOL_REAL (list_workspaces, "list-workspaces", SCREEN_LIST_MODE) + + if (list && list_workspaces) + { + g_printerr (_("Conflicting options are present: --%s and --%s\n"), + "list", "list-workspaces"); + return FALSE; + } + + /* if there's just --list, then we list windows of the default screen */ + if (list && mode == INVALID_MODE) + mode = SCREEN_LIST_MODE; + else if (list) + if (!set_mode (INVALID_MODE, "list", TRUE)) + return FALSE; + + CHECK_POSITIVE_STRICT_INT (set_n_workspaces, "set-n-workspaces", + SCREEN_WRITE_MODE) + if (set_workspace_rows > 0) + if (!set_mode (SCREEN_WRITE_MODE, "set-workspace-rows", FALSE)) + return FALSE; + if (set_workspace_cols > 0) + if (!set_mode (SCREEN_WRITE_MODE, "set-workspace-columns", FALSE)) + return FALSE; + CHECK_DUAL_OPTIONS (show_desktop, SCREEN_WRITE_MODE) + CHECK_POSITIVE_INT (set_viewport_x, "move-viewport-x", SCREEN_WRITE_MODE) + CHECK_POSITIVE_INT (set_viewport_y, "move-viewport-y", SCREEN_WRITE_MODE) + + /* screen options can work by assuming it's on the default screen */ + if (mode == SCREEN_READ_MODE || mode == SCREEN_LIST_MODE || + mode == SCREEN_WRITE_MODE) + { + get_from_user = FALSE; + option_screen = TRUE; + } + + /* no command line option specifying the mode => the user will choose a + * window */ + if (mode == INVALID_MODE) + mode = WINDOW_READ_MODE; + + if (set_change_name != NULL) + if (!set_mode (WORKSPACE_WRITE_MODE, "change-name", FALSE)) + return FALSE; + + CHECK_DUAL_OPTIONS (minimize, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (maximize, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (maximize_horizontally, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (maximize_vertically, WINDOW_WRITE_MODE) + if (set_keyboard_move && set_keyboard_resize) + { + g_printerr (_("Conflicting options are present: --%s and --%s\n"), + "keyboard-move", "keyboard-resize"); + return FALSE; + } + CHECK_BOOL (keyboard_move, "keyboard-move", WINDOW_WRITE_MODE) + CHECK_BOOL (keyboard_resize, "keyboard-resize", WINDOW_WRITE_MODE) + CHECK_BOOL (close, "close", WINDOW_WRITE_MODE) + + CHECK_DUAL_OPTIONS (fullscreen, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (make_above, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (make_below, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (shade, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (stick, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (skip_pager, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (skip_tasklist, WINDOW_WRITE_MODE) + CHECK_DUAL_OPTIONS (pin, WINDOW_WRITE_MODE) + + if ((set_pin || set_unpin) && set_workspace != -1) + { + g_printerr (_("Conflicting options are present: --%s or --%s, " + "and --%s\n"), + "pin", "unpin", "set-workspace"); + return FALSE; + } + + CHECK_POSITIVE_INT (set_workspace, "set-workspace", WINDOW_WRITE_MODE) + CHECK_INT (set_x, "set-x", WINDOW_WRITE_MODE) + CHECK_INT (set_y, "set-y", WINDOW_WRITE_MODE) + CHECK_POSITIVE_INT (set_width, "set-width", WINDOW_WRITE_MODE) + CHECK_POSITIVE_INT (set_height, "set-height", WINDOW_WRITE_MODE) + + if (set_window_type != NULL) + { + if (strcmp (set_window_type, "normal") == 0) + set_window_type_t = WNCK_WINDOW_NORMAL; + else if (strcmp (set_window_type, "desktop") == 0) + set_window_type_t = WNCK_WINDOW_DESKTOP; + else if (strcmp (set_window_type, "dock") == 0) + set_window_type_t = WNCK_WINDOW_DOCK; + else if (strcmp (set_window_type, "dialog") == 0) + set_window_type_t = WNCK_WINDOW_DIALOG; + else if (strcmp (set_window_type, "toolbar") == 0) + set_window_type_t = WNCK_WINDOW_TOOLBAR; + else if (strcmp (set_window_type, "menu") == 0) + set_window_type_t = WNCK_WINDOW_MENU; + else if (strcmp (set_window_type, "utility") == 0) + set_window_type_t = WNCK_WINDOW_UTILITY; + else if (strcmp (set_window_type, "splash") == 0) + set_window_type_t = WNCK_WINDOW_SPLASHSCREEN; + else + { + g_printerr (_("Invalid argument \"%s\" for --%s, valid values are: " + "%s\n"), + set_window_type, "set-window-type", + "normal, desktop, dock, dialog, toolbar, menu, utility, " + "splash"); + } + + if (!set_mode (WINDOW_WRITE_MODE, "set-window-type", FALSE)) + return FALSE; + } + + if (set_activate) + { + if (mode == WORKSPACE_READ_MODE || mode == WORKSPACE_WRITE_MODE) + set_mode (WORKSPACE_WRITE_MODE, "activate", FALSE); + else if (mode == WINDOW_READ_MODE || mode == WINDOW_WRITE_MODE) + set_mode (WINDOW_WRITE_MODE, "activate", FALSE); + else + return set_mode (INVALID_MODE, "activate", FALSE); + } + + return TRUE; +} + +static void +update_screen (WnckScreen *screen) +{ + int viewport_x; + int viewport_y; + + if (set_n_workspaces > 0) + wnck_screen_change_workspace_count (screen, set_n_workspaces); + + if (set_workspace_rows > 0 || set_workspace_cols > 0) + { + int token; + + token = wnck_screen_try_set_workspace_layout (screen, 0, + set_workspace_rows, + set_workspace_cols); + if (token) + wnck_screen_release_workspace_layout (screen, token); + else + g_printerr (_("Cannot change the workspace layout on the screen: " + "the layout is already owned\n")); + } + + if (set_show_desktop) + wnck_screen_toggle_showing_desktop (screen, TRUE); + else if (set_unshow_desktop) + wnck_screen_toggle_showing_desktop (screen, FALSE); + + if (set_viewport_x != -1 || set_viewport_y != -1) + { + WnckWorkspace *active_space; + + active_space = wnck_screen_get_active_workspace (screen); + + if (active_space != NULL) + { + if (wnck_workspace_is_virtual (active_space)) + { + if (set_viewport_x != -1) + viewport_x = set_viewport_x; + else + viewport_x = wnck_workspace_get_viewport_x (active_space); + + if (set_viewport_y != -1) + viewport_y = set_viewport_y; + else + viewport_y = wnck_workspace_get_viewport_y (active_space); + + wnck_screen_move_viewport (screen, viewport_x, viewport_y); + } + else + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + g_printerr (_("Viewport cannot be moved: " + "the current workspace does not contain a viewport\n")); + } + else + /* Translators: 'viewport' is kind of the viewable area. A viewport + * can be used to implement workspaces (e.g. compiz is an example); + * however it is not just the current workspace. */ + g_printerr (_("Viewport cannot be moved: " + "there is no current workspace\n")); + } +} + +static void +update_workspace (WnckWorkspace *space) +{ + unsigned int timestamp; + + timestamp = get_xserver_timestamp (wnck_workspace_get_screen (space)); + + if (set_activate) + wnck_workspace_activate (space, timestamp); + + if (set_change_name) + wnck_workspace_change_name (space, set_change_name); +} + + +static void +update_window (WnckWindow *window) +{ + WnckWindowActions actions; + WnckWindowMoveResizeMask geometry_mask; + unsigned int timestamp; + + actions = wnck_window_get_actions (window); + timestamp = get_xserver_timestamp (wnck_window_get_screen (window)); + +#define SET_PROPERTY(name, action) \ + if (set_##name) \ + { \ + if (actions & action) \ + wnck_window_##name (window); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } + +#define SET_PROPERTY_TIMESTAMP(name, action) \ + if (set_##name) \ + { \ + if (actions & action) \ + wnck_window_##name (window, timestamp); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } + +#define SET_PROPERTY_DUAL(name, action1, action2) \ + if (set_##name) \ + { \ + if (actions & action1) \ + wnck_window_##name (window); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } \ + else if (set_un##name) \ + { \ + if (actions & action2) \ + wnck_window_un##name (window); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } + +/* FIXME: why do we have dual & boolean API. This is not consistent! */ +#define SET_PROPERTY_BOOLEAN(name, action1, action2) \ + if (set_##name) \ + { \ + if (actions & action1) \ + wnck_window_set_##name (window, TRUE); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } \ + else if (set_un##name) \ + { \ + if (actions & action2) \ + wnck_window_set_##name (window, FALSE); \ + else \ + g_printerr (_("Action not allowed\n")); \ + } + +#define SET_GEOMETRY(param, unset, action, change) \ + if (set_##param != unset) \ + { \ + if (actions & action) \ + geometry_mask |= change; \ + else \ + g_printerr (_("Action not allowed\n")); \ + } + + SET_PROPERTY (minimize, WNCK_WINDOW_ACTION_MINIMIZE) + SET_PROPERTY_TIMESTAMP (unminimize, WNCK_WINDOW_ACTION_UNMINIMIZE) + + SET_PROPERTY_DUAL (maximize, + WNCK_WINDOW_ACTION_MAXIMIZE, + WNCK_WINDOW_ACTION_UNMAXIMIZE) + SET_PROPERTY_DUAL (maximize_horizontally, + WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY, + WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY) + SET_PROPERTY_DUAL (maximize_vertically, + WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY, + WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY) + + SET_PROPERTY_BOOLEAN (fullscreen, + WNCK_WINDOW_ACTION_FULLSCREEN, + WNCK_WINDOW_ACTION_FULLSCREEN) + SET_PROPERTY_DUAL (make_above, + WNCK_WINDOW_ACTION_ABOVE, WNCK_WINDOW_ACTION_ABOVE) + SET_PROPERTY_DUAL (make_below, + WNCK_WINDOW_ACTION_BELOW, WNCK_WINDOW_ACTION_BELOW) + SET_PROPERTY_DUAL (shade, + WNCK_WINDOW_ACTION_SHADE, WNCK_WINDOW_ACTION_UNSHADE) + SET_PROPERTY_DUAL (stick, + WNCK_WINDOW_ACTION_STICK, WNCK_WINDOW_ACTION_UNSTICK) + SET_PROPERTY_BOOLEAN (skip_pager, actions, actions) + SET_PROPERTY_BOOLEAN (skip_tasklist, actions, actions) + SET_PROPERTY_DUAL (pin, + WNCK_WINDOW_ACTION_CHANGE_WORKSPACE, + WNCK_WINDOW_ACTION_CHANGE_WORKSPACE) + + if (set_workspace != -1) + { + if (actions & WNCK_WINDOW_ACTION_CHANGE_WORKSPACE) + { + WnckScreen *screen; + WnckWorkspace *space; + + screen = wnck_window_get_screen (window); + space = wnck_screen_get_workspace (screen, set_workspace); + if (space) + wnck_window_move_to_workspace (window, space); + else + g_printerr (_("Window cannot be moved to workspace %d: " + "the workspace does not exist\n"), set_workspace); + } + else + g_printerr (_("Action not allowed\n")); + } + + /* do activation after the workspace change */ + if (set_activate) + { + WnckScreen *screen; + WnckWorkspace *space; + + screen = wnck_window_get_screen (window); + space = wnck_window_get_workspace (window); + if (space != NULL) + { + WnckWorkspace *active_space; + + active_space = wnck_screen_get_active_workspace (screen); + if (space != active_space) + wnck_workspace_activate (space, timestamp); + } + + wnck_window_activate_transient (window, timestamp); + } + + geometry_mask = 0; + SET_GEOMETRY (x, G_MAXINT, WNCK_WINDOW_ACTION_MOVE, WNCK_WINDOW_CHANGE_X) + SET_GEOMETRY (y, G_MAXINT, WNCK_WINDOW_ACTION_MOVE, WNCK_WINDOW_CHANGE_Y) + SET_GEOMETRY (width, -1, WNCK_WINDOW_ACTION_RESIZE, WNCK_WINDOW_CHANGE_WIDTH) + SET_GEOMETRY (height, -1, WNCK_WINDOW_ACTION_RESIZE, WNCK_WINDOW_CHANGE_HEIGHT) + + if (geometry_mask != 0) + wnck_window_set_geometry (window, + WNCK_WINDOW_GRAVITY_CURRENT, geometry_mask, + set_x, set_y, set_width, set_height); + + if (set_window_type != NULL) + wnck_window_set_window_type (window, set_window_type_t); + + /* interactive actions at the end */ + SET_PROPERTY (keyboard_move, WNCK_WINDOW_ACTION_MOVE) + /* FIXME: hack: we should rename the API */ + #define wnck_window_keyboard_resize wnck_window_keyboard_size + SET_PROPERTY (keyboard_resize, WNCK_WINDOW_ACTION_RESIZE) + SET_PROPERTY_TIMESTAMP (close, WNCK_WINDOW_ACTION_CLOSE) +} + +static void +list_windows (GList *windows) +{ + WnckWindow *window; + GList *l; + const char *buf; + + for (l = windows; l; l = l->next) + { + window = WNCK_WINDOW (l->data); + + if (wnck_window_has_name (window)) + buf = wnck_window_get_name (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + + /* Translators: %lu is a window number and %s a window name */ + g_print (_("%lu: %s\n"), wnck_window_get_xid (window), buf); + } +} + +static void +list_screen (WnckScreen *screen) +{ + if (list_workspaces) + { + WnckWorkspace *space; + GList *spaces; + GList *l; + + spaces = wnck_screen_get_workspaces (screen); + + for (l = spaces; l; l = l->next) + { + space = WNCK_WORKSPACE (l->data); + + /* Translators: %d is a workspace number and %s a workspace name */ + g_print (_("%d: %s\n"), + wnck_workspace_get_number (space), + wnck_workspace_get_name (space)); + } + } + else + list_windows (wnck_screen_get_windows (screen)); +} + +static void +list_workspace (WnckWorkspace *space) +{ + WnckWindow *window; + GList *all_windows; + GList *l; + GList *space_windows; + + all_windows = wnck_screen_get_windows (wnck_workspace_get_screen (space)); + space_windows = NULL; + + for (l = all_windows; l; l = l->next) + { + window = WNCK_WINDOW (l->data); + + if (wnck_window_get_workspace (window) != NULL && + wnck_window_get_workspace (window) != space) + continue; + + space_windows = g_list_prepend (space_windows, window); + } + + space_windows = g_list_reverse (space_windows); + + list_windows (space_windows); + + g_list_free (space_windows); +} + +static void +list_class_group (WnckClassGroup *class_group) +{ + list_windows (wnck_class_group_get_windows (class_group)); +} + +static void +list_application (WnckApplication *app) +{ + list_windows (wnck_application_get_windows (app)); +} + +static void +print_screen (WnckScreen *screen) +{ + WnckWorkspace *space; + WnckWindow *window; + const char *buf; + char *free_buf; +#if 0 + WnckLayoutOrientation orientation; + int rows; + int columns; +#endif + + g_print (_("Screen Number: %d\n"), wnck_screen_get_number (screen)); + + g_print (_("Geometry (width, height): %d, %d\n"), + wnck_screen_get_width (screen), + wnck_screen_get_height (screen)); + + g_print (_("Number of Workspaces: %d\n"), + wnck_screen_get_workspace_count (screen)); + +#if 0 + wnck_screen_get_workspace_layout (screen, &orientation, &rows, &columns, + NULL); + g_print (_("Workspace Layout (rows, columns, orientation): " + "%d, %d, %s\n"), + rows, columns, + orientation == WNCK_LAYOUT_ORIENTATION_VERTICAL ? "vertical" : + "horizontal"); +#endif + + if (wnck_screen_get_window_manager_name (screen) != NULL) + buf = wnck_screen_get_window_manager_name (screen); + else + buf = _(""); + g_print (_("Window Manager: %s\n"), buf); + + space = wnck_screen_get_active_workspace (screen); + if (space) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (space), + wnck_workspace_get_name (space)); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("Active Workspace: %s\n"), free_buf); + g_free (free_buf); + + window = wnck_screen_get_active_window (screen); + if (window) + { + char *name; + + if (wnck_window_has_name (window)) + name = g_strdup_printf (_("\"%s\""), wnck_window_get_name (window)); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + name = g_strdup (_("")); + + /* Translators: %lu is a window identifier (number) and %s a window name */ + free_buf = g_strdup_printf (_("%lu (%s)"), + wnck_window_get_xid (window), name); + g_free (name); + } + else + /* Translators: "none" here means "no window" */ + free_buf = g_strdup (C_("window", "none")); + g_print (_("Active Window: %s\n"), free_buf); + g_free (free_buf); + + g_print (_("Showing the desktop: %s\n"), + wnck_screen_get_showing_desktop (screen) ? + _("true") : _("false")); +} + +static void +print_workspace (WnckWorkspace *space) +{ + WnckScreen *screen; + WnckWorkspace *neighbor; + const char *buf; + char *free_buf; + + g_print (_("Workspace Name: %s\n"), wnck_workspace_get_name (space)); + g_print (_("Workspace Number: %d\n"), wnck_workspace_get_number (space)); + + screen = wnck_workspace_get_screen (space); + if (wnck_screen_get_window_manager_name (screen) != NULL) + buf = wnck_screen_get_window_manager_name (screen); + else + buf = _(""); + g_print (_("On Screen: %d (Window Manager: %s)\n"), + wnck_screen_get_number (screen), buf); + + g_print (_("Geometry (width, height): %d, %d\n"), + wnck_workspace_get_width (space), + wnck_workspace_get_height (space)); + + if (wnck_workspace_is_virtual (space)) + free_buf = g_strdup_printf ("%d, %d", + wnck_workspace_get_viewport_x (space), + wnck_workspace_get_viewport_y (space)); + else + /* Translators: 'viewport' is kind of the viewable area. A viewport can be + * used to implement workspaces (e.g. compiz is an example); however it is + * not just the current workspace. */ + free_buf = g_strdup (_("")); + /* Translators: 'viewport' is kind of the viewable area. A viewport can be + * used to implement workspaces (e.g. compiz is an example); however it is + * not just the current workspace. */ + g_print (_("Viewport position (x, y): %s\n"), free_buf); + g_free (free_buf); + + g_print (_("Position in Layout (row, column): %d, %d\n"), + wnck_workspace_get_layout_row (space), + wnck_workspace_get_layout_column (space)); + + neighbor = wnck_workspace_get_neighbor (space, WNCK_MOTION_LEFT); + if (neighbor) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (neighbor), + wnck_workspace_get_name (neighbor)); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("Left Neighbor: %s\n"), free_buf); + g_free (free_buf); + + neighbor = wnck_workspace_get_neighbor (space, WNCK_MOTION_RIGHT); + if (neighbor) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (neighbor), + wnck_workspace_get_name (neighbor)); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("Right Neighbor: %s\n"), free_buf); + g_free (free_buf); + + neighbor = wnck_workspace_get_neighbor (space, WNCK_MOTION_UP); + if (neighbor) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (neighbor), + wnck_workspace_get_name (neighbor)); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("Top Neighbor: %s\n"), free_buf); + g_free (free_buf); + + neighbor = wnck_workspace_get_neighbor (space, WNCK_MOTION_DOWN); + if (neighbor) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (neighbor), + wnck_workspace_get_name (neighbor)); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("Bottom Neighbor: %s\n"), free_buf); + g_free (free_buf); +} + +static void +print_class_group (WnckClassGroup *class_group) +{ + GList *windows; + + windows = wnck_class_group_get_windows (class_group); + + /* Translators: A class is like a "family". E.g., all gvim windows are of the + * same class. */ + g_print (_("Class Group ID: %s\n"), + wnck_class_group_get_id (class_group)); + /* Translators: A class is like a "family". E.g., all gvim windows are of the + * same class. */ + g_print (_("Class Group Name: %s\n"), wnck_class_group_get_name (class_group)); + + /* TODO: missing API */ +#if 0 + if (!wnck_class_group_get_icon_is_fallback (class_group)) + /* Translators: 'set' in the sense of "something has been set". */ + buf = _("set"); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Icons: %s\n"), buf); +#endif + + g_print (_("Number of Windows: %d\n"), g_list_length (windows)); +} + +static void +print_application (WnckApplication *app) +{ + const char *buf; + char *free_buf; + GList *windows; + + windows = wnck_application_get_windows (app); + + g_print (_("Name: %s\n"), wnck_application_get_name (app)); + g_print (_("Icon Name: %s\n"), wnck_application_get_icon_name (app)); + + if (!wnck_application_get_icon_is_fallback (app)) + /* Translators: 'set' in the sense of "something has been set". */ + buf = _("set"); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Icons: %s\n"), buf); + + if (wnck_application_get_pid (app) != 0) + free_buf = g_strdup_printf ("%d", wnck_application_get_pid (app)); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + free_buf = g_strdup (_("")); + g_print (_("PID: %s\n"), free_buf); + g_free (free_buf); + + if (wnck_application_get_startup_id (app) != NULL) + buf = wnck_application_get_startup_id (app); + else + /* Translators: "none" here means "no startup ID" */ + buf = C_("startupID", "none"); + g_print (_("Startup ID: %s\n"), buf); + + g_print (_("Number of Windows: %d\n"), g_list_length (windows)); +} + +static void +print_window (WnckWindow *window) +{ + WnckWindowType type; + int x, y, w, h; + WnckClassGroup *class_group; + WnckWorkspace *space; + WnckScreen *screen; + WnckWindowActions actions; + const char *buf; + char *free_buf; + + if (wnck_window_has_name (window)) + buf = wnck_window_get_name (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Name: %s\n"), buf); + + if (wnck_window_has_icon_name (window)) + buf = wnck_window_get_icon_name (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + /* Translators: note that "Icon" here has a specific window + * management-related meaning. It means minimized. */ + g_print (_("Icon Name: %s\n"), buf); + + if (!wnck_window_get_icon_is_fallback (window)) + /* Translators: 'set' in the sense of "something has been set". */ + buf = _("set"); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Icons: %s\n"), buf); + + space = wnck_window_get_workspace (window); + if (space) + /* Translators: %d is a workspace number and %s a workspace name */ + free_buf = g_strdup_printf (_("%d (\"%s\")"), + wnck_workspace_get_number (space), + wnck_workspace_get_name (space)); + else if (wnck_window_is_pinned (window)) + free_buf = g_strdup (_("all workspaces")); + else + /* Translators: "none" here means "no workspace" */ + free_buf = g_strdup (C_("workspace", "none")); + g_print (_("On Workspace: %s\n"), free_buf); + g_free (free_buf); + + screen = wnck_window_get_screen (window); + if (wnck_screen_get_window_manager_name (screen) != NULL) + buf = wnck_screen_get_window_manager_name (screen); + else + buf = _(""); + g_print (_("On Screen: %d (Window Manager: %s)\n"), + wnck_screen_get_number (screen), buf); + + type = wnck_window_get_window_type (window); + switch (type) + { + case WNCK_WINDOW_NORMAL: + buf = _("normal window"); + break; + case WNCK_WINDOW_DESKTOP: + buf = _("desktop"); + break; + case WNCK_WINDOW_DOCK: + buf = _("dock or panel"); + break; + case WNCK_WINDOW_DIALOG: + buf = _("dialog window"); + break; + case WNCK_WINDOW_TOOLBAR: + buf = _("tearoff toolbar"); + break; + case WNCK_WINDOW_MENU: + buf = _("tearoff menu"); + break; + case WNCK_WINDOW_UTILITY: + buf = _("utility window"); + break; + case WNCK_WINDOW_SPLASHSCREEN: + buf = _("splash screen"); + break; + default: + g_assert_not_reached (); + } + g_print (_("Window Type: %s\n"), buf); + + wnck_window_get_geometry (window, &x, &y, &w, &h); + g_print (_("Geometry (x, y, width, height): %d, %d, %d, %d\n"), x, y, w, h); + + class_group = wnck_window_get_class_group (window); + if (strcmp (wnck_class_group_get_id (class_group), "")) + buf = wnck_class_group_get_id (class_group); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + /* Translators: A class is like a "family". E.g., all gvim windows are of the + * same class. */ + g_print (_("Class Group ID: %s\n"), buf); + + if (g_strcmp0 (wnck_window_get_class_instance_name (window), "")) + buf = wnck_window_get_class_instance_name (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + /* Translators: A class is like a "family". E.g., all gvim windows are of the + * same class. The class instance is a way to differentiate windows belonging + * to the same class group. */ + g_print (_("Class Instance: %s\n"), buf); + + g_print (_("XID: %lu\n"), wnck_window_get_xid (window)); + + if (wnck_window_get_pid (window) != 0) + free_buf = g_strdup_printf ("%d", wnck_window_get_pid (window)); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + free_buf = g_strdup (_("")); + g_print (_("PID: %s\n"), free_buf); + g_free (free_buf); + + if (wnck_window_get_session_id (window)) + buf = wnck_window_get_session_id (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Session ID: %s\n"), buf); + + if (wnck_window_get_role (window)) + buf = wnck_window_get_role (window); + else + /* Translators: 'unset' in the sense of "something has not been set". */ + buf = _(""); + g_print (_("Role: %s\n"), buf); + + if (wnck_window_get_group_leader (window) != wnck_window_get_xid (window)) + /* Translators: A group leader is the window that is the "owner" of a group + * of windows, ie: if you have multiple windows in one application, one + * window has some information about the application (like the application + * name). */ + g_print (_("Group Leader: %lu\n"), wnck_window_get_group_leader (window)); + //FIXME: else print something? + + if (wnck_window_get_transient (window)) + /* Translators: A window can be transient for another window: it means it's + * on top of it */ + g_print (_("Transient for: %lu\n"), + wnck_window_get_xid (wnck_window_get_transient (window))); + //FIXME: else print something? + +#define PRINT_LIST_ITEM(func, string) \ + if (func (window)) \ + { \ + char *tmp; \ + \ + /* Translators: we're building a list of items here. \ + * For example, the result is "a, b". \ + * In this case, the first string is "a", the second \ + * string is ", " and the third string is "b". \ + * We can then use this information here to also \ + * recursively build longer lists, like "a, b, c, d" */ \ + tmp = g_strdup_printf (_("%1$s%2$s%3$s"), \ + free_buf ? free_buf : "", \ + /* Translators: see comment for "%1$s%2$s%3$s" in order \ + * to properly translate this */ \ + free_buf ? _(", ") : "", \ + string); \ + g_free (free_buf); \ + free_buf = tmp; \ + } + free_buf = NULL; + PRINT_LIST_ITEM (wnck_window_is_minimized, _("minimized")); + PRINT_LIST_ITEM (wnck_window_is_maximized, _("maximized")); + if (!wnck_window_is_maximized (window)) + { + PRINT_LIST_ITEM (wnck_window_is_maximized_horizontally, + _("maximized horizontally")); + PRINT_LIST_ITEM (wnck_window_is_maximized_vertically, + _("maximized vertically")); + } + PRINT_LIST_ITEM (wnck_window_is_shaded, _("shaded")); + PRINT_LIST_ITEM (wnck_window_is_pinned, _("pinned")); + PRINT_LIST_ITEM (wnck_window_is_sticky, _("sticky")); + PRINT_LIST_ITEM (wnck_window_is_above, _("above")); + PRINT_LIST_ITEM (wnck_window_is_below, _("below")); + PRINT_LIST_ITEM (wnck_window_is_fullscreen, _("fullscreen")); + PRINT_LIST_ITEM (wnck_window_needs_attention, _("needs attention")); + /* Translators: A pager is the technical term for the workspace switcher. + * It's a representation of all workspaces with windows inside it. + * Please make sure that the translation is in sync with gnome-panel, + * where this term is also used in translatable strings */ + PRINT_LIST_ITEM (wnck_window_is_skip_pager, _("skip pager")); + /* Translators: "tasklist" is the list of running applications (the window + * list) */ + PRINT_LIST_ITEM (wnck_window_is_skip_tasklist, _("skip tasklist")); + if (!free_buf) + free_buf = g_strdup (_("normal")); + g_print (_("State: %s\n"), free_buf); + g_free (free_buf); + +#define PRINT_FLAGS_ITEM(bitmask, flag, string) \ + if (bitmask & flag) \ + { \ + char *tmp; \ + \ + /* Translators: we're building a list of items here. \ + * The end result is something like "a, b, c" \ + * In this case, the first string is "a, b", the second \ + * string is ", " and the third string is "c" */ \ + tmp = g_strdup_printf (_("%1$s%2$s%3$s"), \ + free_buf ? free_buf : "", \ + free_buf ? _(", ") : "", \ + string); \ + g_free (free_buf); \ + free_buf = tmp; \ + } + free_buf = NULL; + actions = wnck_window_get_actions (window); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_MOVE, _("move")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_RESIZE, _("resize")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_SHADE, _("shade")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNSHADE, _("unshade")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_STICK, _("stick")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNSTICK, _("unstick")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY, + _("maximize horizontally")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY, + _("unmaximize horizontally")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY, + _("maximize vertically")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY, + _("unmaximize vertically")); + /* we're calling PRINT_FLAGS_ITEM() three times for l10n reasons */ + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_CHANGE_WORKSPACE, + _("change workspace")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_CHANGE_WORKSPACE, + _("pin")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_CHANGE_WORKSPACE, + _("unpin")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_MINIMIZE, _("minimize")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNMINIMIZE, _("unminimize")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_MAXIMIZE, _("maximize")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_UNMAXIMIZE, _("unmaximize")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_FULLSCREEN, + _("change fullscreen mode")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_CLOSE, _("close")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_ABOVE, + _("make above")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_ABOVE, + _("unmake above")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_BELOW, + _("make below")); + PRINT_FLAGS_ITEM (actions, WNCK_WINDOW_ACTION_BELOW, + _("unmake below")); + if (!free_buf) + free_buf = g_strdup (_("no action possible")); + g_print (_("Possible Actions: %s\n"), free_buf); + g_free (free_buf); + +} + +static gboolean +wm_state_set (Display *display, + Window window) +{ + Atom wm_state; + gulong nitems; + gulong bytes_after; + gulong *prop; + Atom ret_type = None; + int ret_format; + int err, result; + + wm_state = gdk_x11_get_xatom_by_name ("WM_STATE"); + + gdk_error_trap_push (); + result = XGetWindowProperty (display, + window, + wm_state, + 0, G_MAXLONG, + False, wm_state, &ret_type, &ret_format, &nitems, + &bytes_after, (gpointer) &prop); + err = gdk_error_trap_pop (); + if (err != Success || + result != Success) + return FALSE; + + XFree (prop); + + if (ret_type != wm_state) + return FALSE; + + return TRUE; +} + +static WnckWindow * +find_managed_window (Display *display, + Window window) +{ + Window root; + Window parent; + Window *kids = NULL; + WnckWindow *retval; + guint i, nkids; + int result; + + if (wm_state_set (display, window)) + return wnck_window_get (window); + + gdk_error_trap_push (); + result = XQueryTree (display, window, &root, &parent, &kids, &nkids); + if (gdk_error_trap_pop () || !result) + return NULL; + + retval = NULL; + + for (i = 0; i < nkids; i++) + { + if (wm_state_set (display, kids [i])) + { + retval = wnck_window_get (kids [i]); + break; + } + + retval = find_managed_window (display, kids [i]); + if (retval != NULL) + break; + } + + if (kids) + XFree (kids); + + return retval; +} + +static void +handle_button_press_event (Display *dpy, XIDeviceEvent *event) +{ + if (event->child == None) + return; + + got_from_user = find_managed_window (dpy, event->child); +} + +static GdkFilterReturn +target_filter (GdkXEvent *gdk_xevent, + GdkEvent *gdk_event, + gpointer data) +{ + XEvent *xevent = (XEvent *) gdk_xevent; + XGenericEventCookie *cookie = &xevent->xcookie; + + /* Use XI2 to read the event data */ + if (cookie->type == GenericEvent) + { + XIDeviceEvent *event = cookie->data; + + if (!event) + return GDK_FILTER_CONTINUE; + + switch (event->evtype) + { + case XI_ButtonPress: + handle_button_press_event (cookie->display, event); + clean_up (); + return GDK_FILTER_REMOVE; + case XI_KeyPress: + if (event->detail == XKeysymToKeycode (cookie->display, XK_Escape)) + { + clean_up (); + return GDK_FILTER_REMOVE; + } + break; + default: + break; + } + } + + return GDK_FILTER_CONTINUE; +} + +static void +prepare (GdkSeat *seat, + GdkWindow *window, + gpointer user_data) +{ + gdk_window_show_unraised (window); +} + +static gboolean +get_target (gpointer data) +{ + GdkWindow *root; + GdkDisplay *display; + GdkSeat *seat; + GdkCursor *cross; + GdkSeatCapabilities caps; + GdkGrabStatus status; + + root = gdk_get_default_root_window (); + display = gdk_display_get_default (); + seat = gdk_display_get_default_seat (display); + cross = gdk_cursor_new_for_display (display, GDK_CROSS); + caps = GDK_SEAT_CAPABILITY_POINTER | GDK_SEAT_CAPABILITY_KEYBOARD; + + gdk_window_add_filter (root, (GdkFilterFunc) target_filter, NULL); + + status = gdk_seat_grab (seat, root, caps, TRUE, cross, NULL, prepare, NULL); + g_object_unref (cross); + + if (status != GDK_GRAB_SUCCESS) + { + g_warning ("Seat grab failed."); + clean_up (); + return FALSE; + } + + gdk_flush (); + + return FALSE; +} + +static void +clean_up (void) +{ + GdkWindow *root; + GdkDisplay *display; + GdkSeat *seat; + + root = gdk_get_default_root_window (); + display = gdk_display_get_default (); + seat = gdk_display_get_default_seat (display); + + gdk_window_remove_filter (root, (GdkFilterFunc) target_filter, NULL); + gdk_seat_ungrab (seat); + + gtk_main_quit (); +} + +int +main (int argc, char **argv) +{ + GOptionContext *ctxt; + GOptionGroup *group; + GError *error; + WnckScreen *screen; + + bindtextdomain (GETTEXT_PACKAGE, WNCK_LOCALEDIR); + bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); + textdomain (GETTEXT_PACKAGE); + + ctxt = g_option_context_new (NULL); + g_option_context_set_translation_domain (ctxt, GETTEXT_PACKAGE); + + g_option_context_set_summary (ctxt, + N_("Print or modify the properties of a " + "screen/workspace/window, or interact with " + "it, following the EWMH specification.\n" + "For information about this specification, " + "see:\n\t" + "http://freedesktop.org/wiki/Specifications/wm-spec")); + + g_option_context_add_main_entries (ctxt, main_entries, GETTEXT_PACKAGE); + + group = g_option_group_new ("list", + N_("Options to list windows or workspaces"), + N_("Show options to list windows or workspaces"), + NULL, NULL); + g_option_group_add_entries (group, list_entries); + g_option_group_set_translation_domain (group, GETTEXT_PACKAGE); + g_option_context_add_group (ctxt, group); + + group = g_option_group_new ("window", + N_("Options to modify properties of a window"), + N_("Show options to modify properties of a window"), + NULL, NULL); + g_option_group_add_entries (group, window_entries); + g_option_group_set_translation_domain (group, GETTEXT_PACKAGE); + g_option_context_add_group (ctxt, group); + + group = g_option_group_new ("workspace", + N_("Options to modify properties of a workspace"), + N_("Show options to modify properties of a workspace"), + NULL, NULL); + g_option_group_add_entries (group, space_entries); + g_option_group_set_translation_domain (group, GETTEXT_PACKAGE); + g_option_context_add_group (ctxt, group); + + group = g_option_group_new ("screen", + N_("Options to modify properties of a screen"), + N_("Show options to modify properties of a screen"), + NULL, NULL); + g_option_group_add_entries (group, screen_entries); + g_option_group_set_translation_domain (group, GETTEXT_PACKAGE); + g_option_context_add_group (ctxt, group); + + g_option_context_add_group (ctxt, gtk_get_option_group (TRUE)); + + error = NULL; + if (!g_option_context_parse (ctxt, &argc, &argv, &error)) + { + g_printerr (_("Error while parsing arguments: %s\n"), error->message); + g_option_context_free (ctxt); + g_error_free (error); + return 1; + } + + g_option_context_free (ctxt); + ctxt = NULL; + + if (!validate_options ()) + return 1; + + gtk_init (&argc, &argv); + + wnck_set_client_type (WNCK_CLIENT_TYPE_PAGER); + + if ((option_screen && interact_screen < 0) || !option_screen) + screen = wnck_screen_get_default (); + else + { + screen = wnck_screen_get (interact_screen); + if (!screen) + { + g_printerr (_("Cannot interact with screen %d: " + "the screen does not exist\n"), interact_screen); + return 0; + } + } + + /* because we don't respond to signals at the moment */ + wnck_screen_force_update (screen); + + if (option_workspace && interact_space < 0) + { + WnckWorkspace *space; + space = wnck_screen_get_active_workspace (screen); + if (space == NULL) + interact_space = 0; + else + interact_space = wnck_workspace_get_number (space); + } + + if (get_from_user) + { + g_idle_add (get_target, NULL); + + gtk_main (); + + if (!got_from_user) + return 0; + } + + if (mode == SCREEN_READ_MODE) + print_screen (screen); + else if (mode == SCREEN_LIST_MODE) + list_screen (screen); + else if (mode == SCREEN_WRITE_MODE) + update_screen (screen); + else if (mode == WORKSPACE_READ_MODE || mode == WORKSPACE_LIST_MODE || + mode == WORKSPACE_WRITE_MODE) + { + WnckWorkspace *space; + + g_assert (interact_space != -1); + + space = wnck_screen_get_workspace (screen, interact_space); + + if (space) + { + if (mode == WORKSPACE_READ_MODE) + print_workspace (space); + else if (mode == WORKSPACE_LIST_MODE) + list_workspace (space); + else if (mode == WORKSPACE_WRITE_MODE) + update_workspace (space); + else + g_assert_not_reached (); + } + else + g_printerr (_("Cannot interact with workspace %d: " + "the workspace cannot be found\n"), interact_space); + } + else if (mode == CLASS_GROUP_READ_MODE || mode == CLASS_GROUP_LIST_MODE) + { + WnckClassGroup *class_group; + + if (got_from_user) + class_group = wnck_window_get_class_group (got_from_user); + else + class_group = wnck_class_group_get (interact_class_group); + + if (class_group) + { + if (mode == CLASS_GROUP_READ_MODE) + print_class_group (class_group); + else if (mode == CLASS_GROUP_LIST_MODE) + list_class_group (class_group); + else + g_assert_not_reached (); + } + else + /* Translators: A class is like a "family". E.g., all gvim windows are + * of the same class. */ + g_printerr (_("Cannot interact with class group \"%s\": " + "the class group cannot be found\n"), + interact_class_group); + } + else if (mode == APPLICATION_READ_MODE || mode == APPLICATION_LIST_MODE) + { + WnckApplication *app; + + if (got_from_user) + app = wnck_window_get_application (got_from_user); + else + app = wnck_application_get (interact_app_xid); + + if (app) + { + if (mode == APPLICATION_READ_MODE) + print_application (app); + else if (mode == APPLICATION_LIST_MODE) + list_application (app); + else + g_assert_not_reached (); + } + else + g_printerr (_("Cannot interact with application having its group " + "leader with XID %lu: the application cannot be found\n"), + interact_app_xid); + } + else + { + WnckWindow *window; + + if (got_from_user) + window = got_from_user; + else + window = wnck_window_get (xid); + + if (window) + { + if (mode == WINDOW_WRITE_MODE) + update_window (window); + else if (mode == WINDOW_READ_MODE) + print_window (window); + else + g_assert_not_reached (); + } + else + g_printerr (_("Cannot interact with window with XID %lu: " + "the window cannot be found\n"), xid); + } + + return 0; +} diff --git a/libwnck/workspace-accessible-factory.c b/libwnck/workspace-accessible-factory.c new file mode 100644 index 0000000..2aabc5c --- /dev/null +++ b/libwnck/workspace-accessible-factory.c @@ -0,0 +1,62 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include +#include "workspace-accessible-factory.h" +#include "workspace-accessible.h" + +G_DEFINE_TYPE (WnckWorkspaceAccessibleFactory, + wnck_workspace_accessible_factory, ATK_TYPE_OBJECT_FACTORY); + +static AtkObject* wnck_workspace_accessible_factory_create_accessible (GObject *obj); + +static GType wnck_workspace_accessible_factory_get_accessible_type (void); + +static void +wnck_workspace_accessible_factory_class_init (WnckWorkspaceAccessibleFactoryClass *klass) +{ + AtkObjectFactoryClass *class = ATK_OBJECT_FACTORY_CLASS (klass); + + class->create_accessible = wnck_workspace_accessible_factory_create_accessible; + class->get_accessible_type = wnck_workspace_accessible_factory_get_accessible_type; +} + +static void +wnck_workspace_accessible_factory_init (WnckWorkspaceAccessibleFactory *factory) +{ +} + +AtkObjectFactory* +wnck_workspace_accessible_factory_new (void) +{ + GObject *factory; + factory = g_object_new (WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY, NULL); + return ATK_OBJECT_FACTORY (factory); +} + +static AtkObject* +wnck_workspace_accessible_factory_create_accessible (GObject *obj) +{ + return wnck_workspace_accessible_new (obj); +} + +static GType +wnck_workspace_accessible_factory_get_accessible_type (void) +{ + return WNCK_WORKSPACE_TYPE_ACCESSIBLE; +} diff --git a/libwnck/workspace-accessible-factory.h b/libwnck/workspace-accessible-factory.h new file mode 100644 index 0000000..d2d4a84 --- /dev/null +++ b/libwnck/workspace-accessible-factory.h @@ -0,0 +1,52 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __WNCK_WORKSPACE_ACCESSIBLE_FACTORY_H__ +#define __WBCK_WORKSPACE_ACCESSIBLE_FACTORY_H__ + +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY (wnck_workspace_accessible_factory_get_type()) +#define WNCK_WORKSPACE_ACCESSIBLE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY, WnckWorkspaceAccessibleFactory)) +#define WNCK_WORKSPACE_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY, WnckWorkspaceAccessibleFactoryClass)) +#define WNCK_IS_WORKSPACE_ACCESSIBLE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY)) +#define WNCK_IS_WORKSPACE_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY)) +#define WNCK_WORKSPACE_ACCESSIBLE_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_WORKSPACE_ACCESSIBLE_FACTORY, WnckWorkspaceAccessibleFactoryClass)) + +typedef struct _WnckWorkspaceAccessibleFactory WnckWorkspaceAccessibleFactory; +typedef struct _WnckWorkspaceAccessibleFactoryClass WnckWorkspaceAccessibleFactoryClass; + +struct _WnckWorkspaceAccessibleFactory +{ + AtkObjectFactory parent; +}; + +struct _WnckWorkspaceAccessibleFactoryClass +{ + AtkObjectFactoryClass parent_class; +}; + +GType wnck_workspace_accessible_factory_get_type (void) G_GNUC_CONST; + +AtkObjectFactory* wnck_workspace_accessible_factory_new (void); + +G_END_DECLS + +#endif /* __WNCK_WORKSPACE_ACCESSIBLE_FACTORY_H__ */ diff --git a/libwnck/workspace-accessible.c b/libwnck/workspace-accessible.c new file mode 100644 index 0000000..28d127b --- /dev/null +++ b/libwnck/workspace-accessible.c @@ -0,0 +1,248 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#include +#include +#include +#include +#include "workspace-accessible.h" +#include "private.h" +static void wnck_workspace_accessible_class_init (WnckWorkspaceAccessibleClass *klass); +static const char* wnck_workspace_accessible_get_name (AtkObject *obj); +static const char* wnck_workspace_accessible_get_description (AtkObject *obj); +static int wnck_workspace_accessible_get_index_in_parent (AtkObject *obj); +static void atk_component_interface_init (AtkComponentIface *iface); +static void wnck_workspace_accessible_get_extents (AtkComponent *component, + int *x, + int *y, + int *width, + int *height, + AtkCoordType coords); +static void wnck_workspace_accessible_get_position (AtkComponent *component, + int *x, + int *y, + AtkCoordType coords); +static gboolean wnck_workspace_accessible_contains (AtkComponent *component, + int x, + int y, + AtkCoordType coords); +static void wnck_workspace_accessible_get_size (AtkComponent *component, + int *width, + int *height); + +GType +wnck_workspace_accessible_get_type (void) +{ + static GType type = 0; + + if (!type) + { + const GTypeInfo tinfo = + { + sizeof (WnckWorkspaceAccessibleClass), + (GBaseInitFunc) NULL, /* base init */ + (GBaseFinalizeFunc) NULL, /* base finalize */ + (GClassInitFunc) wnck_workspace_accessible_class_init, + (GClassFinalizeFunc) NULL, /* class finalize */ + NULL, /* class data */ + sizeof (WnckWorkspaceAccessible), /* instance size*/ + 0, /* nb preallocs */ + (GInstanceInitFunc) NULL, /* instance init */ + NULL /* value table */ + }; + + const GInterfaceInfo atk_component_info = + { + (GInterfaceInitFunc) atk_component_interface_init, + (GInterfaceFinalizeFunc) NULL, + NULL + }; + + type = g_type_register_static (ATK_TYPE_GOBJECT_ACCESSIBLE, "WnckWorkspaceAccessible", &tinfo, 0); + g_type_add_interface_static (type, ATK_TYPE_COMPONENT, &atk_component_info); + } + return type; +} + +static void +atk_component_interface_init (AtkComponentIface *iface) +{ + g_return_if_fail (iface != NULL); + + iface->get_extents = wnck_workspace_accessible_get_extents; + iface->get_size = wnck_workspace_accessible_get_size; + iface->get_position = wnck_workspace_accessible_get_position; + iface->contains = wnck_workspace_accessible_contains; +} + +static void +wnck_workspace_accessible_get_extents (AtkComponent *component, + int *x, + int *y, + int *width, + int *height, + AtkCoordType coords) +{ + AtkGObjectAccessible *atk_gobj; + WnckPager *pager; + GdkRectangle rect; + GtkWidget *widget; + AtkObject *parent; + GObject *g_obj; + int px, py; + + g_return_if_fail (WNCK_IS_WORKSPACE_ACCESSIBLE (component)); + + atk_gobj = ATK_GOBJECT_ACCESSIBLE (component); + g_obj = atk_gobject_accessible_get_object (atk_gobj); + if (g_obj == NULL) + return; + + g_return_if_fail (WNCK_IS_WORKSPACE (g_obj)); + + parent = atk_object_get_parent (ATK_OBJECT(component)); + widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)); + + if (widget == NULL) + { + /* + *State is defunct + */ + return; + } + + g_return_if_fail (WNCK_IS_PAGER (widget)); + pager = WNCK_PAGER (widget); + + g_return_if_fail (WNCK_IS_PAGER (pager)); + + atk_component_get_extents (ATK_COMPONENT (parent), &px, &py, NULL, NULL, coords); + + _wnck_pager_get_workspace_rect (pager, WNCK_WORKSPACE_ACCESSIBLE (component)->index, &rect); + + *x = rect.x + px; + *y = rect.y + py; + *height = rect.height; + *width = rect.width; +} + +static void +wnck_workspace_accessible_get_size (AtkComponent *component, + int *width, + int *height) +{ + AtkCoordType coords = ATK_XY_SCREEN; + int x, y; + + /* FIXME: Value for initialization of coords picked randomly to please gcc */ + + wnck_workspace_accessible_get_extents (component, &x, &y, width, height, coords); +} + +static void +wnck_workspace_accessible_get_position (AtkComponent *component, + int *x, + int *y, + AtkCoordType coords) +{ + int width, height; + wnck_workspace_accessible_get_extents (component, x, y, &width, &height, coords); +} + +static gboolean +wnck_workspace_accessible_contains (AtkComponent *component, + int x, + int y, + AtkCoordType coords) +{ + int lx, ly, width, height; + + wnck_workspace_accessible_get_extents (component, &lx, &ly, &width, &height, coords); + + /* + * Check if the specified co-ordinates fall within the workspace. + */ + if ( (x > lx) && ((lx + width) >= x) && (y > ly) && ((ly + height) >= ly) ) + return TRUE; + else + return FALSE; +} + +static void +wnck_workspace_accessible_class_init (WnckWorkspaceAccessibleClass *klass) +{ + AtkObjectClass *class = ATK_OBJECT_CLASS (klass); + + class->get_name = wnck_workspace_accessible_get_name; + class->get_description = wnck_workspace_accessible_get_description; + class->get_index_in_parent = wnck_workspace_accessible_get_index_in_parent; +} + +AtkObject* +wnck_workspace_accessible_new (GObject *obj) +{ + GObject *object; + AtkObject *atk_object; + + g_return_val_if_fail (WNCK_IS_WORKSPACE (obj), NULL); + + object = g_object_new (WNCK_WORKSPACE_TYPE_ACCESSIBLE, NULL); + atk_object = ATK_OBJECT (object); + atk_object_initialize (atk_object, obj); + + g_return_val_if_fail (ATK_IS_OBJECT (atk_object), NULL); + + WNCK_WORKSPACE_ACCESSIBLE (atk_object)->index = + wnck_workspace_get_number (WNCK_WORKSPACE (obj)); + + return atk_object; +} + +static const char* +wnck_workspace_accessible_get_name (AtkObject *obj) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE_ACCESSIBLE (obj), NULL); + + if (obj->name != NULL) + { + return obj->name; + } + else + return NULL; +} + +static const char* +wnck_workspace_accessible_get_description (AtkObject *obj) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE_ACCESSIBLE (obj), NULL); + + if (obj->description != NULL) + { + return obj->description; + } + else + return NULL; +} + +static gint +wnck_workspace_accessible_get_index_in_parent (AtkObject *obj) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE_ACCESSIBLE (obj), -1); + + return WNCK_WORKSPACE_ACCESSIBLE (obj)->index; +} diff --git a/libwnck/workspace-accessible.h b/libwnck/workspace-accessible.h new file mode 100644 index 0000000..51b07e4 --- /dev/null +++ b/libwnck/workspace-accessible.h @@ -0,0 +1,57 @@ +/* vim: set sw=2 et: */ +/* + * Copyright 2002 Sun Microsystems Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __WNCK_WORKSPACE_ACCESSIBLE_H__ +#define __WNCK_WORKSPACE_ACCESSIBLE_H__ + +#include +#include +#include "workspace.h" +#include "pager-accessible.h" + +G_BEGIN_DECLS + +#define WNCK_WORKSPACE_TYPE_ACCESSIBLE (wnck_workspace_accessible_get_type ()) +#define WNCK_WORKSPACE_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WNCK_WORKSPACE_TYPE_ACCESSIBLE, WnckWorkspaceAccessible)) +#define WNCK_WORKSPACE_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_WORKSPACE_TYPE_ACCESSIBLE, WnckWorkspaceAccessibleClass)) +#define WNCK_IS_WORKSPACE_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WNCK_WORKSPACE_TYPE_ACCESSIBLE)) +#define WNCK_IS_WORKSPACE_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WnckWorkspaceAccessible)) +#define WNCK_WORKSPACE_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_WORKSPACE_TYPE_ACCESSIBLE, WnckWorkspaceAccessibleClass)) + +typedef struct _WnckWorkspaceAccessible WnckWorkspaceAccessible; +typedef struct _WnckWorkspaceAccessibleClass WnckWorkspaceAccessibleClass; + +struct _WnckWorkspaceAccessible +{ + AtkGObjectAccessible parent; + + int index; +}; + +struct _WnckWorkspaceAccessibleClass +{ + AtkGObjectAccessibleClass parent_class; +}; + +GType wnck_workspace_accessible_get_type (void) G_GNUC_CONST; + +AtkObject* wnck_workspace_accessible_new (GObject *obj); + +G_END_DECLS + +#endif /* __WNCK_WORKSPACE_ACCESSIBLE_H__ */ diff --git a/libwnck/workspace.c b/libwnck/workspace.c new file mode 100644 index 0000000..638f3d4 --- /dev/null +++ b/libwnck/workspace.c @@ -0,0 +1,604 @@ +/* workspace object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2003 Kim Woelders + * Copyright (C) 2003 Red Hat, Inc. + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include + +#include +#include "workspace.h" +#include "xutils.h" +#include "private.h" +#include + +/** + * SECTION:workspace + * @short_description: an object representing a workspace. + * @see_also: #WnckScreen + * @stability: Unstable + * + * The #WnckWorkspace represents what is called virtual + * desktops in the EWMH. + * A workspace is a virtualization of a #WnckScreen: only one workspace + * can be shown on a #WnckScreen at a time. It makes it possible, for example, + * to put windows on different workspaces to organize them. + * + * If the #WnckWorkspace size is bigger that the #WnckScreen size, the + * workspace contains a viewport. Viewports are defined in the large + * desktops section of the EWMH. + * The notion of workspaces and viewports are quite similar, and generally both + * are not used at the same time: there are generally either multiple + * workspaces with no viewport, or one workspace with a viewport. libwnck + * supports all situations, even multiple workspaces with viewports. + * + * Workspaces are organized according to a layout set on the #WnckScreen. See + * wnck_screen_try_set_workspace_layout() and + * wnck_screen_release_workspace_layout() for more information about the + * layout. + * + * The #WnckWorkspace objects are always owned by libwnck and must not be + * referenced or unreferenced. + */ + +struct _WnckWorkspacePrivate +{ + WnckScreen *screen; + int number; + char *name; + int width, height; /* Workspace size */ + int viewport_x, viewport_y; /* Viewport origin */ + gboolean is_virtual; +}; + +G_DEFINE_TYPE (WnckWorkspace, wnck_workspace, G_TYPE_OBJECT); +#define WNCK_WORKSPACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WNCK_TYPE_WORKSPACE, WnckWorkspacePrivate)) + +enum { + NAME_CHANGED, + LAST_SIGNAL +}; + +static void wnck_workspace_finalize (GObject *object); + +static void emit_name_changed (WnckWorkspace *space); + +static guint signals[LAST_SIGNAL] = { 0 }; + +static void +wnck_workspace_init (WnckWorkspace *workspace) +{ + workspace->priv = WNCK_WORKSPACE_GET_PRIVATE (workspace); + + workspace->priv->number = -1; +} + +static void +wnck_workspace_class_init (WnckWorkspaceClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (WnckWorkspacePrivate)); + + object_class->finalize = wnck_workspace_finalize; + + /** + * WnckWorkspace::name-changed: + * @space: the #WnckWorkspace which emitted the signal. + * + * Emitted when the name of @space changes. + */ + signals[NAME_CHANGED] = + g_signal_new ("name_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (WnckWorkspaceClass, name_changed), + NULL, NULL, NULL, + G_TYPE_NONE, 0); +} + +static void +wnck_workspace_finalize (GObject *object) +{ + WnckWorkspace *workspace; + + workspace = WNCK_WORKSPACE (object); + + g_free (workspace->priv->name); + workspace->priv->name = NULL; + + G_OBJECT_CLASS (wnck_workspace_parent_class)->finalize (object); +} + +/** + * wnck_workspace_get_number: + * @space: a #WnckWorkspace. + * + * Gets the index of @space on the #WnckScreen to which it belongs. The + * first workspace has an index of 0. + * + * Return value: the index of @space on its #WnckScreen, or -1 on errors. + **/ +int +wnck_workspace_get_number (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), -1); + + return space->priv->number; +} + +/** + * wnck_workspace_get_name: + * @space: a #WnckWorkspace. + * + * Gets the human-readable name that should be used to refer to @space. If + * the user has not set a special name, a fallback like "Workspace 3" will be + * used. + * + * Return value: the name of @space. + **/ +const char* +wnck_workspace_get_name (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), NULL); + + return space->priv->name; +} + +/** + * wnck_workspace_change_name: + * @space: a #WnckWorkspace. + * @name: new name for @space. + * + * Changes the name of @space. + * + * Since: 2.2 + **/ +void +wnck_workspace_change_name (WnckWorkspace *space, + const char *name) +{ + g_return_if_fail (WNCK_IS_WORKSPACE (space)); + g_return_if_fail (name != NULL); + + _wnck_screen_change_workspace_name (space->priv->screen, + space->priv->number, + name); +} + +/** + * wnck_workspace_get_screen: + * @space: a #WnckWorkspace. + * + * Gets the #WnckScreen @space is on. + * + * Return value: (transfer none): the #WnckScreen @space is on. The returned + * #WnckScreen is owned by libwnck and must not be referenced or unreferenced. + **/ +WnckScreen* +wnck_workspace_get_screen (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), NULL); + + return space->priv->screen; +} + +/** + * wnck_workspace_activate: + * @space: a #WnckWorkspace. + * @timestamp: the X server timestamp of the user interaction event that caused + * this call to occur. + * + * Asks the window manager to make @space the active workspace. The window + * manager may decide to refuse the request (to not steal the focus if there is + * a more recent user activity, for example). + * + * This function existed before 2.10, but the @timestamp argument was missing + * in earlier versions. + * + * Since: 2.10 + **/ +void +wnck_workspace_activate (WnckWorkspace *space, + guint32 timestamp) +{ + g_return_if_fail (WNCK_IS_WORKSPACE (space)); + + _wnck_activate_workspace (WNCK_SCREEN_XSCREEN (space->priv->screen), + space->priv->number, + timestamp); +} + +WnckWorkspace* +_wnck_workspace_create (int number, WnckScreen *screen) +{ + WnckWorkspace *space; + + space = g_object_new (WNCK_TYPE_WORKSPACE, NULL); + space->priv->number = number; + space->priv->name = NULL; + space->priv->screen = screen; + + _wnck_workspace_update_name (space, NULL); + + /* Just set reasonable defaults */ + space->priv->width = wnck_screen_get_width (screen); + space->priv->height = wnck_screen_get_height (screen); + space->priv->is_virtual = FALSE; + + space->priv->viewport_x = 0; + space->priv->viewport_y = 0; + + return space; +} + +void +_wnck_workspace_update_name (WnckWorkspace *space, + const char *name) +{ + char *old; + + g_return_if_fail (WNCK_IS_WORKSPACE (space)); + + old = space->priv->name; + space->priv->name = g_strdup (name); + + if (space->priv->name == NULL) + space->priv->name = g_strdup_printf (_("Workspace %d"), + space->priv->number + 1); + + if ((old && !name) || + (!old && name) || + (old && name && strcmp (old, name) != 0)) + emit_name_changed (space); + + g_free (old); +} + +static void +emit_name_changed (WnckWorkspace *space) +{ + g_signal_emit (G_OBJECT (space), + signals[NAME_CHANGED], + 0); +} + +gboolean +_wnck_workspace_set_geometry (WnckWorkspace *space, + int w, + int h) +{ + if (space->priv->width != w || space->priv->height != h) + { + space->priv->width = w; + space->priv->height = h; + + space->priv->is_virtual = w > wnck_screen_get_width (space->priv->screen) || + h > wnck_screen_get_height (space->priv->screen); + + return TRUE; /* change was made */ + } + else + return FALSE; +} + +gboolean +_wnck_workspace_set_viewport (WnckWorkspace *space, + int x, + int y) +{ + if (space->priv->viewport_x != x || space->priv->viewport_y != y) + { + space->priv->viewport_x = x; + space->priv->viewport_y = y; + + return TRUE; /* change was made */ + } + else + return FALSE; +} + +/** + * wnck_workspace_get_width: + * @space: a #WnckWorkspace. + * + * Gets the width of @space. + * + * Returns: the width of @space. + * + * Since: 2.4 + */ +int +wnck_workspace_get_width (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), 0); + + return space->priv->width; +} + +/** + * wnck_workspace_get_height: + * @space: a #WnckWorkspace. + * + * Gets the height of @space. + * + * Returns: the height of @space. + * + * Since: 2.4 + */ +int +wnck_workspace_get_height (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), 0); + + return space->priv->height; +} + +/** + * wnck_workspace_get_viewport_x: + * @space: a #WnckWorkspace. + * + * Gets the X coordinate of the viewport in @space. + * + * Returns: the X coordinate of the viewport in @space, or 0 if @space does not + * contain a viewport. + * + * Since: 2.4 + */ +int +wnck_workspace_get_viewport_x (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), 0); + + return space->priv->viewport_x; +} + +/** + * wnck_workspace_get_viewport_y: + * @space: a #WnckWorkspace. + * + * Gets the Y coordinate of the viewport in @space. + * + * Returns: the Y coordinate of the viewport in @space, or 0 if @space does not + * contain a viewport. + * + * Since: 2.4 + */ +int +wnck_workspace_get_viewport_y (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), 0); + + return space->priv->viewport_y; +} + +/** + * wnck_workspace_is_virtual: + * @space: a #WnckWorkspace. + * + * Gets whether @space contains a viewport. + * + * Returns: %TRUE if @space contains a viewport, %FALSE otherwise. + * + * Since: 2.4 + */ +gboolean +wnck_workspace_is_virtual (WnckWorkspace *space) +{ + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), FALSE); + + return space->priv->is_virtual; +} + +/** + * wnck_workspace_get_layout_row: + * @space: a #WnckWorkspace. + * + * Gets the row of @space in the #WnckWorkspace layout. The first row has an + * index of 0 and is always the top row, regardless of the starting corner set + * for the layout. + * + * Return value: the row of @space in the #WnckWorkspace layout, or -1 on + * errors. + * + * Since: 2.20 + **/ +int +wnck_workspace_get_layout_row (WnckWorkspace *space) +{ + _WnckLayoutOrientation orientation; + _WnckLayoutCorner corner; + int n_rows; + int n_cols; + int row; + + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), -1); + + _wnck_screen_get_workspace_layout (space->priv->screen, + &orientation, &n_rows, &n_cols, &corner); + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + row = space->priv->number / n_cols; + else + row = space->priv->number % n_rows; + + if (corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT || + corner == WNCK_LAYOUT_CORNER_BOTTOMLEFT) + row = n_rows - row; + + return row; +} + +/** + * wnck_workspace_get_layout_column: + * @space: a #WnckWorkspace. + * + * Gets the column of @space in the #WnckWorkspace layout. The first column + * has an index of 0 and is always the left column, regardless of the starting + * corner set for the layout and regardless of the default direction of the + * environment (i.e., in both Left-To-Right and Right-To-Left environments). + * + * Return value: the column of @space in the #WnckWorkspace layout, or -1 on + * errors. + * + * Since: 2.20 + **/ +int +wnck_workspace_get_layout_column (WnckWorkspace *space) +{ + _WnckLayoutOrientation orientation; + _WnckLayoutCorner corner; + int n_rows; + int n_cols; + int col; + + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), -1); + + _wnck_screen_get_workspace_layout (space->priv->screen, + &orientation, &n_rows, &n_cols, &corner); + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + col = space->priv->number % n_cols; + else + col = space->priv->number / n_rows; + + if (corner == WNCK_LAYOUT_CORNER_TOPRIGHT || + corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT) + col = n_cols - col; + + return col; +} + +/** + * wnck_workspace_get_neighbor: + * @space: a #WnckWorkspace. + * @direction: direction in which to search the neighbor. + * + * Gets the neighbor #WnckWorkspace of @space in the @direction direction. + * + * Return value: (transfer none): the neighbor #WnckWorkspace of @space in the + * @direction direction, or %NULL if no such neighbor #WnckWorkspace exists. + * The returned #WnckWorkspace is owned by libwnck and must not be referenced + * or unreferenced. + * + * Since: 2.20 + **/ +WnckWorkspace* +wnck_workspace_get_neighbor (WnckWorkspace *space, + WnckMotionDirection direction) +{ + _WnckLayoutOrientation orientation; + _WnckLayoutCorner corner; + int n_rows; + int n_cols; + int row; + int col; + int add; + int index; + + g_return_val_if_fail (WNCK_IS_WORKSPACE (space), NULL); + + _wnck_screen_get_workspace_layout (space->priv->screen, + &orientation, &n_rows, &n_cols, &corner); + + row = wnck_workspace_get_layout_row (space); + col = wnck_workspace_get_layout_column (space); + + index = space->priv->number; + + switch (direction) + { + case WNCK_MOTION_LEFT: + if (col == 0) + return NULL; + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + add = 1; + else + add = n_rows; + + if (corner == WNCK_LAYOUT_CORNER_TOPRIGHT || + corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT) + index += add; + else + index -= add; + break; + + case WNCK_MOTION_RIGHT: + if (col == n_cols - 1) + return NULL; + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + add = 1; + else + add = n_rows; + + if (corner == WNCK_LAYOUT_CORNER_TOPRIGHT || + corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT) + index -= add; + else + index += add; + break; + + case WNCK_MOTION_UP: + if (row == 0) + return NULL; + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + add = n_cols; + else + add = 1; + + if (corner == WNCK_LAYOUT_CORNER_BOTTOMLEFT || + corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT) + index += add; + else + index -= add; + break; + + case WNCK_MOTION_DOWN: + if (row == n_rows - 1) + return NULL; + + if (orientation == WNCK_LAYOUT_ORIENTATION_HORIZONTAL) + add = n_cols; + else + add = 1; + + if (corner == WNCK_LAYOUT_CORNER_BOTTOMLEFT || + corner == WNCK_LAYOUT_CORNER_BOTTOMRIGHT) + index -= add; + else + index += add; + break; + + default: + break; + } + + if (index == space->priv->number) + return NULL; + + return wnck_screen_get_workspace (space->priv->screen, index); +} diff --git a/libwnck/workspace.h b/libwnck/workspace.h new file mode 100644 index 0000000..64ff9ba --- /dev/null +++ b/libwnck/workspace.h @@ -0,0 +1,116 @@ +/* workspace object */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2006-2007 Vincent Untz + * + * 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; if not, see . + */ + +#if !defined (__LIBWNCK_H_INSIDE__) && !defined (WNCK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef WNCK_WORKSPACE_H +#define WNCK_WORKSPACE_H + +#include +#include + +G_BEGIN_DECLS + +#define WNCK_TYPE_WORKSPACE (wnck_workspace_get_type ()) +#define WNCK_WORKSPACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WNCK_TYPE_WORKSPACE, WnckWorkspace)) +#define WNCK_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WNCK_TYPE_WORKSPACE, WnckWorkspaceClass)) +#define WNCK_IS_WORKSPACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WNCK_TYPE_WORKSPACE)) +#define WNCK_IS_WORKSPACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WNCK_TYPE_WORKSPACE)) +#define WNCK_WORKSPACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WNCK_TYPE_WORKSPACE, WnckWorkspaceClass)) + +typedef struct _WnckWorkspaceClass WnckWorkspaceClass; +typedef struct _WnckWorkspacePrivate WnckWorkspacePrivate; + +/** + * WnckWorkspace: + * + * The #WnckWorkspace struct contains only private fields and should not be + * directly accessed. + */ +struct _WnckWorkspace +{ + GObject parent_instance; + + WnckWorkspacePrivate *priv; +}; + +struct _WnckWorkspaceClass +{ + GObjectClass parent_class; + + void (* name_changed) (WnckWorkspace *space); + + /* Padding for future expansion */ + void (* pad1) (void); + void (* pad2) (void); + void (* pad3) (void); + void (* pad4) (void); +}; + +/** + * WnckMotionDirection: + * @WNCK_MOTION_UP: search a neighbor #WnckWorkspace above another + * #WnckWorkspace. + * @WNCK_MOTION_DOWN: search a neighbor #WnckWorkspace below another + * #WnckWorkspace. + * @WNCK_MOTION_LEFT: search a neighbor #WnckWorkspace at the left of another + * #WnckWorkspace. + * @WNCK_MOTION_RIGHT: search a neighbor #WnckWorkspace at the right of another + * #WnckWorkspace. + * + * Type defining a direction in which to search a neighbor #WnckWorkspace. + * + * Since: 2.14 + */ +typedef enum +{ + WNCK_MOTION_UP = -1, + WNCK_MOTION_DOWN = -2, + WNCK_MOTION_LEFT = -3, + WNCK_MOTION_RIGHT = -4 +} WnckMotionDirection; + +GType wnck_workspace_get_type (void) G_GNUC_CONST; + +int wnck_workspace_get_number (WnckWorkspace *space); +const char* wnck_workspace_get_name (WnckWorkspace *space); +void wnck_workspace_change_name (WnckWorkspace *space, + const char *name); +WnckScreen* wnck_workspace_get_screen (WnckWorkspace *space); +void wnck_workspace_activate (WnckWorkspace *space, + guint32 timestamp); +int wnck_workspace_get_width (WnckWorkspace *space); +int wnck_workspace_get_height (WnckWorkspace *space); +int wnck_workspace_get_viewport_x (WnckWorkspace *space); +int wnck_workspace_get_viewport_y (WnckWorkspace *space); +gboolean wnck_workspace_is_virtual (WnckWorkspace *space); + + +int wnck_workspace_get_layout_row (WnckWorkspace *space); +int wnck_workspace_get_layout_column (WnckWorkspace *space); +WnckWorkspace* wnck_workspace_get_neighbor (WnckWorkspace *space, + WnckMotionDirection direction); + +G_END_DECLS + +#endif /* WNCK_WORKSPACE_H */ diff --git a/libwnck/xutils.c b/libwnck/xutils.c new file mode 100644 index 0000000..d20f11e --- /dev/null +++ b/libwnck/xutils.c @@ -0,0 +1,2834 @@ +/* Xlib utils */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#include +#include "xutils.h" +#include +#include +#include +#if HAVE_CAIRO_XLIB_XRENDER +#include +#endif +#include "screen.h" +#include "window.h" +#include "private.h" + +gboolean +_wnck_get_cardinal (Screen *screen, + Window xwindow, + Atom atom, + int *val) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + gulong *num; + int err, result; + + display = DisplayOfScreen (screen); + + *val = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_CARDINAL, &type, &format, &nitems, + &bytes_after, (void*)&num); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_CARDINAL) + { + XFree (num); + return FALSE; + } + + *val = *num; + + XFree (num); + + return TRUE; +} + +int +_wnck_get_wm_state (Screen *screen, + Window xwindow) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + gulong *num; + int err, result; + Atom wm_state; + int retval; + + display = DisplayOfScreen (screen); + + wm_state = _wnck_atom_get ("WM_STATE"); + retval = NormalState; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + wm_state, + 0, G_MAXLONG, + False, wm_state, &type, &format, &nitems, + &bytes_after, (void*)&num); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return retval; + + if (type != wm_state) + { + XFree (num); + return retval; + } + + retval = *num; + + XFree (num); + + return retval; +} + +gboolean +_wnck_get_window (Screen *screen, + Window xwindow, + Atom atom, + Window *val) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Window *w; + int err, result; + + display = DisplayOfScreen (screen); + + *val = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_WINDOW, &type, &format, &nitems, + &bytes_after, (void*)&w); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_WINDOW) + { + XFree (w); + return FALSE; + } + + *val = *w; + + XFree (w); + + return TRUE; +} + +gboolean +_wnck_get_pixmap (Screen *screen, + Window xwindow, + Atom atom, + Pixmap *val) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Window *w; + int err, result; + + display = DisplayOfScreen (screen); + + *val = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_PIXMAP, &type, &format, &nitems, + &bytes_after, (void*)&w); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_PIXMAP) + { + XFree (w); + return FALSE; + } + + *val = *w; + + XFree (w); + + return TRUE; +} + +gboolean +_wnck_get_atom (Screen *screen, + Window xwindow, + Atom atom, + Atom *val) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Atom *a; + int err, result; + + display = DisplayOfScreen (screen); + + *val = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_ATOM, &type, &format, &nitems, + &bytes_after, (void*)&a); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_ATOM) + { + XFree (a); + return FALSE; + } + + *val = *a; + + XFree (a); + + return TRUE; +} + +static char* +text_property_to_utf8 (Display *display, + const XTextProperty *prop) +{ + GdkDisplay *gdkdisplay; + char **list; + int count; + char *retval; + + list = NULL; + + gdkdisplay = _wnck_gdk_display_lookup_from_display (display); + if (!gdkdisplay) + return NULL; + + count = gdk_text_property_to_utf8_list_for_display (gdkdisplay, + gdk_x11_xatom_to_atom (prop->encoding), + prop->format, + prop->value, + prop->nitems, + &list); + + if (count == 0) + retval = NULL; + else + { + retval = list[0]; + list[0] = g_strdup (""); /* something to free */ + } + + g_strfreev (list); + + return retval; +} + +char* +_wnck_get_text_property (Screen *screen, + Window xwindow, + Atom atom) +{ + Display *display; + XTextProperty text; + char *retval; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + + text.nitems = 0; + if (XGetTextProperty (display, + xwindow, + &text, + atom)) + { + retval = text_property_to_utf8 (display, &text); + + if (text.value) + XFree (text.value); + } + else + { + retval = NULL; + } + + _wnck_error_trap_pop (display); + + return retval; +} + +static char* +_wnck_get_string_property_latin1 (Screen *screen, + Window xwindow, + Atom atom) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + gchar *str; + int err, result; + char *retval; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + str = NULL; + result = XGetWindowProperty (display, + xwindow, atom, + 0, G_MAXLONG, + False, XA_STRING, &type, &format, &nitems, + &bytes_after, (guchar **)&str); + + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return NULL; + + if (type != XA_STRING) + { + XFree (str); + return NULL; + } + + retval = g_strdup (str); + + XFree (str); + + return retval; +} + +char* +_wnck_get_utf8_property (Screen *screen, + Window xwindow, + Atom atom) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + gchar *val; + int err, result; + char *retval; + Atom utf8_string; + + display = DisplayOfScreen (screen); + + utf8_string = _wnck_atom_get ("UTF8_STRING"); + + _wnck_error_trap_push (display); + type = None; + val = NULL; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, utf8_string, + &type, &format, &nitems, + &bytes_after, (guchar **)&val); + err = _wnck_error_trap_pop (display); + + if (err != Success || + result != Success) + return NULL; + + if (type != utf8_string || + format != 8 || + nitems == 0) + { + if (val) + XFree (val); + return NULL; + } + + if (!g_utf8_validate (val, nitems, NULL)) + { + g_warning ("Property %s contained invalid UTF-8\n", + _wnck_atom_name (atom)); + XFree (val); + return NULL; + } + + retval = g_strndup (val, nitems); + + XFree (val); + + return retval; +} + +gboolean +_wnck_get_window_list (Screen *screen, + Window xwindow, + Atom atom, + Window **windows, + int *len) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Window *data; + int err, result; + + display = DisplayOfScreen (screen); + + *windows = NULL; + *len = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_WINDOW, &type, &format, &nitems, + &bytes_after, (void*)&data); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_WINDOW) + { + XFree (data); + return FALSE; + } + + *windows = g_new (Window, nitems); + memcpy (*windows, data, sizeof (Window) * nitems); + *len = nitems; + + XFree (data); + + return TRUE; +} + +gboolean +_wnck_get_atom_list (Screen *screen, + Window xwindow, + Atom atom, + Atom **atoms, + int *len) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Atom *data; + int err, result; + + display = DisplayOfScreen (screen); + + *atoms = NULL; + *len = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_ATOM, &type, &format, &nitems, + &bytes_after, (void*)&data); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_ATOM) + { + XFree (data); + return FALSE; + } + + *atoms = g_new (Atom, nitems); + memcpy (*atoms, data, sizeof (Atom) * nitems); + *len = nitems; + + XFree (data); + + return TRUE; +} + +gboolean +_wnck_get_cardinal_list (Screen *screen, + Window xwindow, + Atom atom, + gulong **cardinals, + int *len) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + gulong *nums; + int err, result; + + display = DisplayOfScreen (screen); + + *cardinals = NULL; + *len = 0; + + _wnck_error_trap_push (display); + type = None; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, XA_CARDINAL, &type, &format, &nitems, + &bytes_after, (void*)&nums); + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_CARDINAL) + { + XFree (nums); + return FALSE; + } + + *cardinals = g_new (gulong, nitems); + memcpy (*cardinals, nums, sizeof (gulong) * nitems); + *len = nitems; + + XFree (nums); + + return TRUE; +} + +char** +_wnck_get_utf8_list (Screen *screen, + Window xwindow, + Atom atom) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + char *val; + int err, result; + Atom utf8_string; + char **retval; + guint i; + guint n_strings; + char *p; + + display = DisplayOfScreen (screen); + + utf8_string = _wnck_atom_get ("UTF8_STRING"); + + _wnck_error_trap_push (display); + type = None; + val = NULL; + result = XGetWindowProperty (display, + xwindow, + atom, + 0, G_MAXLONG, + False, utf8_string, + &type, &format, &nitems, + &bytes_after, (void*)&val); + err = _wnck_error_trap_pop (display); + + if (err != Success || + result != Success) + return NULL; + + if (type != utf8_string || + format != 8 || + nitems == 0) + { + if (val) + XFree (val); + return NULL; + } + + /* I'm not sure this is right, but I'm guessing the + * property is nul-separated + */ + i = 0; + n_strings = 0; + while (i < nitems) + { + if (val[i] == '\0') + ++n_strings; + ++i; + } + + if (val[nitems - 1] != '\0') + ++n_strings; + + /* we're guaranteed that val has a nul on the end + * by XGetWindowProperty + */ + + retval = g_new0 (char*, n_strings + 1); + + p = val; + i = 0; + while (i < n_strings) + { + if (!g_utf8_validate (p, -1, NULL)) + { + g_warning ("Property %s contained invalid UTF-8\n", + _wnck_atom_name (atom)); + XFree (val); + g_strfreev (retval); + return NULL; + } + + retval[i] = g_strdup (p); + + p = p + strlen (p) + 1; + ++i; + } + + XFree (val); + + return retval; +} + +void +_wnck_set_utf8_list (Screen *screen, + Window xwindow, + Atom atom, + char **list) +{ + Display *display; + Atom utf8_string; + GString *flattened; + int i; + + display = DisplayOfScreen (screen); + + utf8_string = _wnck_atom_get ("UTF8_STRING"); + + /* flatten to nul-separated list */ + flattened = g_string_new (""); + i = 0; + while (list[i] != NULL) + { + g_string_append_len (flattened, list[i], + strlen (list[i]) + 1); + ++i; + } + + _wnck_error_trap_push (display); + + XChangeProperty (display, + xwindow, + atom, + utf8_string, 8, PropModeReplace, + (guchar *) flattened->str, flattened->len); + + _wnck_error_trap_pop (display); + + g_string_free (flattened, TRUE); +} + +void +_wnck_error_trap_push (Display *display) +{ + gdk_error_trap_push (); +} + +int +_wnck_error_trap_pop (Display *display) +{ + gdk_flush (); + return gdk_error_trap_pop (); +} + +static GdkFilterReturn +filter_func (GdkXEvent *gdkxevent, + GdkEvent *event, + gpointer data) +{ + XEvent *xevent = gdkxevent; +#ifdef HAVE_STARTUP_NOTIFICATION + int i; + Display *display; +#endif /* HAVE_STARTUP_NOTIFICATION */ + + switch (xevent->type) + { + case PropertyNotify: + { + WnckScreen *screen; + + screen = wnck_screen_get_for_root (xevent->xany.window); + if (screen != NULL) + _wnck_screen_process_property_notify (screen, xevent); + else + { + WnckWindow *window; + WnckApplication *app; + + window = wnck_window_get (xevent->xany.window); + app = wnck_application_get (xevent->xany.window); + + if (app) + _wnck_application_process_property_notify (app, xevent); + + if (window) + _wnck_window_process_property_notify (window, xevent); + } + } + break; + + case ConfigureNotify: + { + WnckWindow *window; + + window = wnck_window_get (xevent->xconfigure.window); + + if (window) + _wnck_window_process_configure_notify (window, xevent); + } + break; + + case SelectionClear: + { + _wnck_desktop_layout_manager_process_event (xevent); + } + break; + + case ClientMessage: +#ifdef HAVE_STARTUP_NOTIFICATION + /* We're cheating as officially libsn requires + * us to send all events through sn_display_process_event + */ + i = 0; + display = ((XAnyEvent *) xevent)->display; + + while (i < ScreenCount (display)) + { + WnckScreen *s; + + s = _wnck_screen_get_existing (i); + if (s != NULL) + sn_display_process_event (_wnck_screen_get_sn_display (s), + xevent); + + ++i; + } +#endif /* HAVE_STARTUP_NOTIFICATION */ + break; + + default: + break; + } + + return GDK_FILTER_CONTINUE; +} + +static gboolean _wnck_event_filter_initialized = FALSE; + +void +_wnck_event_filter_init (void) +{ + + if (!_wnck_event_filter_initialized) + { + gdk_window_add_filter (NULL, filter_func, NULL); + _wnck_event_filter_initialized = TRUE; + } +} + +void +_wnck_event_filter_shutdown (void) +{ + + if (_wnck_event_filter_initialized) + { + gdk_window_remove_filter (NULL, filter_func, NULL); + _wnck_event_filter_initialized = FALSE; + } +} + +int +_wnck_xid_equal (gconstpointer v1, + gconstpointer v2) +{ + return *((const gulong*) v1) == *((const gulong*) v2); +} + +guint +_wnck_xid_hash (gconstpointer v) +{ + gulong val = * (const gulong *) v; + + /* I'm not sure this works so well. */ +#if GLIB_SIZEOF_LONG > 4 + return (guint) (val ^ (val >> 32)); +#else + return val; +#endif +} + +void +_wnck_iconify (Screen *screen, + Window xwindow) +{ + Display *display; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + XIconifyWindow (display, xwindow, DefaultScreen (display)); + _wnck_error_trap_pop (display); +} + +void +_wnck_deiconify (Screen *screen, + Window xwindow) +{ + /* We need special precautions, because GDK doesn't like + * XMapWindow() called on its windows, need to use the + * GDK functions + */ + Display *display; + GdkWindow *gdkwindow; + + display = DisplayOfScreen (screen); + gdkwindow = _wnck_gdk_window_lookup_from_window (screen, xwindow); + + _wnck_error_trap_push (display); + if (gdkwindow) + gdk_window_show (gdkwindow); + else + XMapRaised (display, xwindow); + _wnck_error_trap_pop (display); +} + +void +_wnck_close (Screen *screen, + Window xwindow, + Time timestamp) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_CLOSE_WINDOW"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = timestamp; + xev.xclient.data.l[1] = _wnck_get_client_type (); + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +#define _NET_WM_MOVERESIZE_SIZE_TOPLEFT 0 +#define _NET_WM_MOVERESIZE_SIZE_TOP 1 +#define _NET_WM_MOVERESIZE_SIZE_TOPRIGHT 2 +#define _NET_WM_MOVERESIZE_SIZE_RIGHT 3 +#define _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT 4 +#define _NET_WM_MOVERESIZE_SIZE_BOTTOM 5 +#define _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT 6 +#define _NET_WM_MOVERESIZE_SIZE_LEFT 7 +#define _NET_WM_MOVERESIZE_MOVE 8 +#define _NET_WM_MOVERESIZE_SIZE_KEYBOARD 9 +#define _NET_WM_MOVERESIZE_MOVE_KEYBOARD 10 + +void +_wnck_keyboard_move (Screen *screen, + Window xwindow) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_WM_MOVERESIZE"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = 0; /* unused */ + xev.xclient.data.l[1] = 0; /* unused */ + xev.xclient.data.l[2] = _NET_WM_MOVERESIZE_MOVE_KEYBOARD; + xev.xclient.data.l[3] = 0; /* unused */ + xev.xclient.data.l[4] = _wnck_get_client_type (); + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_keyboard_size (Screen *screen, + Window xwindow) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_WM_MOVERESIZE"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = 0; /* unused */ + xev.xclient.data.l[1] = 0; /* unused */ + xev.xclient.data.l[2] = _NET_WM_MOVERESIZE_SIZE_KEYBOARD; + xev.xclient.data.l[3] = 0; /* unused */ + xev.xclient.data.l[4] = _wnck_get_client_type (); + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_change_state (Screen *screen, + Window xwindow, + gboolean add, + Atom state1, + Atom state2) +{ + Display *display; + Window root; + XEvent xev; + +#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ +#define _NET_WM_STATE_ADD 1 /* add/set property */ +#define _NET_WM_STATE_TOGGLE 2 /* toggle property */ + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_WM_STATE"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = add ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; + xev.xclient.data.l[1] = state1; + xev.xclient.data.l[2] = state2; + xev.xclient.data.l[3] = _wnck_get_client_type (); + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_change_workspace (Screen *screen, + Window xwindow, + int new_space) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_WM_DESKTOP"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = new_space; + xev.xclient.data.l[1] = _wnck_get_client_type (); + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_activate (Screen *screen, + Window xwindow, + Time timestamp) +{ + Display *display; + Window root; + XEvent xev; + + if (timestamp == 0) + g_warning ("Received a timestamp of 0; window activation may not " + "function properly.\n"); + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_ACTIVE_WINDOW"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = _wnck_get_client_type (); + xev.xclient.data.l[1] = timestamp; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_activate_workspace (Screen *screen, + int new_active_space, + Time timestamp) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = root; + xev.xclient.message_type = _wnck_atom_get ("_NET_CURRENT_DESKTOP"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = new_active_space; + xev.xclient.data.l[1] = timestamp; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_change_viewport (Screen *screen, + int x, + int y) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = root; + xev.xclient.message_type = _wnck_atom_get ("_NET_DESKTOP_VIEWPORT"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = x; + xev.xclient.data.l[1] = y; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_toggle_showing_desktop (Screen *screen, + gboolean show) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = root; + xev.xclient.message_type = _wnck_atom_get ("_NET_SHOWING_DESKTOP"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = show != FALSE; + xev.xclient.data.l[1] = 0; + xev.xclient.data.l[2] = 0; + xev.xclient.data.l[3] = 0; + xev.xclient.data.l[4] = 0; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +char* +_wnck_get_session_id (Screen *screen, + Window xwindow) +{ + Window client_leader; + + client_leader = None; + _wnck_get_window (screen, xwindow, + _wnck_atom_get ("WM_CLIENT_LEADER"), + &client_leader); + + if (client_leader == None) + return NULL; + + return _wnck_get_string_property_latin1 (screen, client_leader, + _wnck_atom_get ("SM_CLIENT_ID")); +} + +int +_wnck_get_pid (Screen *screen, + Window xwindow) +{ + int val; + + if (!_wnck_get_cardinal (screen, xwindow, + _wnck_atom_get ("_NET_WM_PID"), + &val)) + return 0; + else + return val; +} + +char* +_wnck_get_name (Screen *screen, + Window xwindow) +{ + char *name; + + name = _wnck_get_utf8_property (screen, xwindow, + _wnck_atom_get ("_NET_WM_VISIBLE_NAME")); + + if (name == NULL) + name = _wnck_get_utf8_property (screen, xwindow, + _wnck_atom_get ("_NET_WM_NAME")); + + if (name == NULL) + name = _wnck_get_text_property (screen, xwindow, + XA_WM_NAME); + + return name; +} + +char* +_wnck_get_icon_name (Screen *screen, + Window xwindow) +{ + char *name; + + name = _wnck_get_utf8_property (screen, xwindow, + _wnck_atom_get ("_NET_WM_VISIBLE_ICON_NAME")); + + if (name == NULL) + name = _wnck_get_utf8_property (screen, xwindow, + _wnck_atom_get ("_NET_WM_ICON_NAME")); + + if (name == NULL) + name = _wnck_get_text_property (screen, xwindow, + XA_WM_ICON_NAME); + + return name; +} + +static char* +latin1_to_utf8 (const char *latin1) +{ + GString *str; + const char *p; + + str = g_string_new (NULL); + + p = latin1; + while (*p) + { + g_string_append_unichar (str, (gunichar) *p); + ++p; + } + + return g_string_free (str, FALSE); +} + +char* +_wnck_get_res_class_utf8 (Screen *screen, + Window xwindow) +{ + char *res_class; + + _wnck_get_wmclass (screen, xwindow, &res_class, NULL); + + return res_class; +} + +void +_wnck_get_wmclass (Screen *screen, + Window xwindow, + char **res_class, + char **res_name) +{ + Display *display; + XClassHint ch; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + + ch.res_name = NULL; + ch.res_class = NULL; + + XGetClassHint (display, xwindow, &ch); + + _wnck_error_trap_pop (display); + + if (res_class) + *res_class = NULL; + + if (res_name) + *res_name = NULL; + + if (ch.res_name) + { + if (res_name) + *res_name = latin1_to_utf8 (ch.res_name); + + XFree (ch.res_name); + } + + if (ch.res_class) + { + if (res_class) + *res_class = latin1_to_utf8 (ch.res_class); + + XFree (ch.res_class); + } +} + +gboolean +_wnck_get_frame_extents (Screen *screen, + Window xwindow, + int *left_frame, + int *right_frame, + int *top_frame, + int *bottom_frame) +{ + gulong *p_size; + int n_size; + gboolean retval; + + retval = FALSE; + p_size = NULL; + n_size = 0; + + _wnck_get_cardinal_list (screen, xwindow, + _wnck_atom_get ("_NET_FRAME_EXTENTS"), + &p_size, &n_size); + + if (p_size != NULL && n_size == 4) + { + *left_frame = p_size[0]; + *right_frame = p_size[1]; + *top_frame = p_size[2]; + *bottom_frame = p_size[3]; + + retval = TRUE; + } + + if (p_size == NULL) + { + _wnck_get_cardinal_list (screen, xwindow, + _wnck_atom_get ("_GTK_FRAME_EXTENTS"), + &p_size, &n_size); + + if (p_size != NULL && n_size == 4) + { + *left_frame = -p_size[0]; + *right_frame = -p_size[1]; + *top_frame = -p_size[2]; + *bottom_frame = -p_size[3]; + + retval = TRUE; + } + } + + if (p_size != NULL) + g_free (p_size); + + return retval; +} + +int +_wnck_select_input (Screen *screen, + Window xwindow, + int mask, + gboolean update) +{ + Display *display; + GdkWindow *gdkwindow; + int old_mask = 0; + + display = DisplayOfScreen (screen); + + gdkwindow = _wnck_gdk_window_lookup_from_window (screen, xwindow); + + _wnck_error_trap_push (display); + if (gdkwindow) + { + /* Avoid breaking GDK's setup, + * this somewhat relies on people setting + * event masks right after realization + * and not changing them again + */ + XWindowAttributes attrs; + XGetWindowAttributes (display, xwindow, &attrs); + old_mask = attrs.your_event_mask; + + if (update) + mask |= attrs.your_event_mask; + } + + XSelectInput (display, xwindow, mask); + _wnck_error_trap_pop (display); + + return old_mask; +} + +/* The icon-reading code is copied + * from metacity, please sync bugfixes + */ +static gboolean +find_largest_sizes (gulong *data, + gulong nitems, + int *width, + int *height) +{ + *width = 0; + *height = 0; + + while (nitems > 0) + { + int w, h; + + if (nitems < 3) + return FALSE; /* no space for w, h */ + + w = data[0]; + h = data[1]; + + if (nitems < ((gulong) (w * h) + 2)) + return FALSE; /* not enough data */ + + *width = MAX (w, *width); + *height = MAX (h, *height); + + data += (w * h) + 2; + nitems -= (w * h) + 2; + } + + return TRUE; +} + +static gboolean +find_best_size (gulong *data, + gulong nitems, + int ideal_width, + int ideal_height, + int *width, + int *height, + gulong **start) +{ + int best_w; + int best_h; + gulong *best_start; + int max_width, max_height; + + *width = 0; + *height = 0; + *start = NULL; + + if (!find_largest_sizes (data, nitems, &max_width, &max_height)) + return FALSE; + + if (ideal_width < 0) + ideal_width = max_width; + if (ideal_height < 0) + ideal_height = max_height; + + best_w = 0; + best_h = 0; + best_start = NULL; + + while (nitems > 0) + { + int w, h; + gboolean replace; + + replace = FALSE; + + if (nitems < 3) + return FALSE; /* no space for w, h */ + + w = data[0]; + h = data[1]; + + if (nitems < ((gulong) (w * h) + 2)) + break; /* not enough data */ + + if (best_start == NULL) + { + replace = TRUE; + } + else + { + /* work with averages */ + const int ideal_size = (ideal_width + ideal_height) / 2; + int best_size = (best_w + best_h) / 2; + int this_size = (w + h) / 2; + + /* larger than desired is always better than smaller */ + if (best_size < ideal_size && + this_size >= ideal_size) + replace = TRUE; + /* if we have too small, pick anything bigger */ + else if (best_size < ideal_size && + this_size > best_size) + replace = TRUE; + /* if we have too large, pick anything smaller + * but still >= the ideal + */ + else if (best_size > ideal_size && + this_size >= ideal_size && + this_size < best_size) + replace = TRUE; + } + + if (replace) + { + best_start = data + 2; + best_w = w; + best_h = h; + } + + data += (w * h) + 2; + nitems -= (w * h) + 2; + } + + if (best_start) + { + *start = best_start; + *width = best_w; + *height = best_h; + return TRUE; + } + else + return FALSE; +} + +static void +argbdata_to_pixdata (gulong *argb_data, int len, guchar **pixdata) +{ + guchar *p; + int i; + + *pixdata = g_new (guchar, len * 4); + p = *pixdata; + + /* One could speed this up a lot. */ + i = 0; + while (i < len) + { + guint argb; + guint rgba; + + argb = argb_data[i]; + rgba = (argb << 8) | (argb >> 24); + + *p = rgba >> 24; + ++p; + *p = (rgba >> 16) & 0xff; + ++p; + *p = (rgba >> 8) & 0xff; + ++p; + *p = rgba & 0xff; + ++p; + + ++i; + } +} + +static gboolean +read_rgb_icon (Screen *screen, + Window xwindow, + int ideal_width, + int ideal_height, + int ideal_mini_width, + int ideal_mini_height, + int *width, + int *height, + guchar **pixdata, + int *mini_width, + int *mini_height, + guchar **mini_pixdata) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + int result, err; + gulong *data; + gulong *best; + int w, h; + gulong *best_mini; + int mini_w, mini_h; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + type = None; + data = NULL; + result = XGetWindowProperty (display, + xwindow, + _wnck_atom_get ("_NET_WM_ICON"), + 0, G_MAXLONG, + False, XA_CARDINAL, &type, &format, &nitems, + &bytes_after, (void*)&data); + + err = _wnck_error_trap_pop (display); + + if (err != Success || + result != Success) + return FALSE; + + if (type != XA_CARDINAL) + { + XFree (data); + return FALSE; + } + + if (!find_best_size (data, nitems, + ideal_width, ideal_height, + &w, &h, &best)) + { + XFree (data); + return FALSE; + } + + if (!find_best_size (data, nitems, + ideal_mini_width, ideal_mini_height, + &mini_w, &mini_h, &best_mini)) + { + XFree (data); + return FALSE; + } + + *width = w; + *height = h; + + *mini_width = mini_w; + *mini_height = mini_h; + + argbdata_to_pixdata (best, w * h, pixdata); + argbdata_to_pixdata (best_mini, mini_w * mini_h, mini_pixdata); + + XFree (data); + + return TRUE; +} + +static void +free_pixels (guchar *pixels, gpointer data) +{ + g_free (pixels); +} + +static cairo_surface_t * +_wnck_cairo_surface_get_from_pixmap (Screen *screen, + Pixmap xpixmap) +{ + cairo_surface_t *surface; + Display *display; + Window root_return; + int x_ret, y_ret; + unsigned int w_ret, h_ret, bw_ret, depth_ret; + XWindowAttributes attrs; + + surface = NULL; + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + + if (!XGetGeometry (display, xpixmap, &root_return, + &x_ret, &y_ret, &w_ret, &h_ret, &bw_ret, &depth_ret)) + goto TRAP_POP; + + if (depth_ret == 1) + { + surface = cairo_xlib_surface_create_for_bitmap (display, + xpixmap, + screen, + w_ret, + h_ret); + } + else + { + if (!XGetWindowAttributes (display, root_return, &attrs)) + goto TRAP_POP; + + if (depth_ret == (unsigned int) attrs.depth) + { + surface = cairo_xlib_surface_create (display, + xpixmap, + attrs.visual, + w_ret, h_ret); + } + else + { +#if HAVE_CAIRO_XLIB_XRENDER + int std; + + switch (depth_ret) { + case 1: std = PictStandardA1; break; + case 4: std = PictStandardA4; break; + case 8: std = PictStandardA8; break; + case 24: std = PictStandardRGB24; break; + case 32: std = PictStandardARGB32; break; + default: goto TRAP_POP; + } + + surface = cairo_xlib_surface_create_with_xrender_format (display, + xpixmap, + attrs.screen, + XRenderFindStandardFormat (display, std), + w_ret, h_ret); +#endif + } + } + +TRAP_POP: + _wnck_error_trap_pop (display); + + return surface; +} + +GdkPixbuf* +_wnck_gdk_pixbuf_get_from_pixmap (Screen *screen, + Pixmap xpixmap) +{ + cairo_surface_t *surface; + GdkPixbuf *retval; + + surface = _wnck_cairo_surface_get_from_pixmap (screen, xpixmap); + + if (surface == NULL) + return NULL; + + retval = gdk_pixbuf_get_from_surface (surface, + 0, + 0, + cairo_xlib_surface_get_width (surface), + cairo_xlib_surface_get_height (surface)); + cairo_surface_destroy (surface); + + return retval; +} + +static gboolean +try_pixmap_and_mask (Screen *screen, + Pixmap src_pixmap, + Pixmap src_mask, + GdkPixbuf **iconp, + int ideal_width, + int ideal_height, + GdkPixbuf **mini_iconp, + int ideal_mini_width, + int ideal_mini_height) +{ + cairo_surface_t *surface, *mask_surface, *image; + GdkPixbuf *unscaled; + int width, height; + cairo_t *cr; + + if (src_pixmap == None) + return FALSE; + + surface = _wnck_cairo_surface_get_from_pixmap (screen, src_pixmap); + + if (surface && src_mask != None) + mask_surface = _wnck_cairo_surface_get_from_pixmap (screen, src_mask); + else + mask_surface = NULL; + + if (surface == NULL) + return FALSE; + + gdk_error_trap_push (); + + width = cairo_xlib_surface_get_width (surface); + height = cairo_xlib_surface_get_height (surface); + + image = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + width, height); + cr = cairo_create (image); + + /* Need special code for alpha-only surfaces. We only get those + * for bitmaps. And in that case, it's a differentiation between + * foreground (white) and background (black). + */ + if (cairo_surface_get_content (surface) & CAIRO_CONTENT_ALPHA) + { + cairo_push_group (cr); + + /* black background */ + cairo_set_source_rgb (cr, 0, 0, 0); + cairo_paint (cr); + /* mask with white foreground */ + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_mask_surface (cr, surface, 0, 0); + + cairo_pop_group_to_source (cr); + } + else + cairo_set_source_surface (cr, surface, 0, 0); + + if (mask_surface) + { + cairo_mask_surface (cr, mask_surface, 0, 0); + cairo_surface_destroy (mask_surface); + } + else + cairo_paint (cr); + + cairo_surface_destroy (surface); + cairo_destroy (cr); + + if (gdk_error_trap_pop () != Success) + { + cairo_surface_destroy (image); + return FALSE; + } + + unscaled = gdk_pixbuf_get_from_surface (image, + 0, 0, + width, height); + + cairo_surface_destroy (image); + + if (unscaled) + { + *iconp = + gdk_pixbuf_scale_simple (unscaled, + ideal_width > 0 ? ideal_width : + gdk_pixbuf_get_width (unscaled), + ideal_height > 0 ? ideal_height : + gdk_pixbuf_get_height (unscaled), + GDK_INTERP_BILINEAR); + *mini_iconp = + gdk_pixbuf_scale_simple (unscaled, + ideal_mini_width > 0 ? ideal_mini_width : + gdk_pixbuf_get_width (unscaled), + ideal_mini_height > 0 ? ideal_mini_height : + gdk_pixbuf_get_height (unscaled), + GDK_INTERP_BILINEAR); + + g_object_unref (G_OBJECT (unscaled)); + return TRUE; + } + else + return FALSE; +} + +static void +get_kwm_win_icon (Screen *screen, + Window xwindow, + Pixmap *pixmap, + Pixmap *mask) +{ + Display *display; + Atom type; + int format; + gulong nitems; + gulong bytes_after; + Pixmap *icons; + int err, result; + + display = DisplayOfScreen (screen); + + *pixmap = None; + *mask = None; + + _wnck_error_trap_push (display); + icons = NULL; + result = XGetWindowProperty (display, xwindow, + _wnck_atom_get ("KWM_WIN_ICON"), + 0, G_MAXLONG, + False, + _wnck_atom_get ("KWM_WIN_ICON"), + &type, &format, &nitems, + &bytes_after, (void*)&icons); + + err = _wnck_error_trap_pop (display); + if (err != Success || + result != Success) + return; + + if (type != _wnck_atom_get ("KWM_WIN_ICON")) + { + XFree (icons); + return; + } + + *pixmap = icons[0]; + *mask = icons[1]; + + XFree (icons); + + return; +} + +typedef enum +{ + /* These MUST be in ascending order of preference; + * i.e. if we get _NET_WM_ICON and already have + * WM_HINTS, we prefer _NET_WM_ICON + */ + USING_NO_ICON, + USING_FALLBACK_ICON, + USING_KWM_WIN_ICON, + USING_WM_HINTS, + USING_NET_WM_ICON +} IconOrigin; + +struct _WnckIconCache +{ + IconOrigin origin; + Pixmap prev_pixmap; + Pixmap prev_mask; + GdkPixbuf *icon; + GdkPixbuf *mini_icon; + int ideal_width; + int ideal_height; + int ideal_mini_width; + int ideal_mini_height; + guint want_fallback : 1; + /* TRUE if these props have changed */ + guint wm_hints_dirty : 1; + guint kwm_win_icon_dirty : 1; + guint net_wm_icon_dirty : 1; +}; + +WnckIconCache* +_wnck_icon_cache_new (void) +{ + WnckIconCache *icon_cache; + + icon_cache = g_slice_new0 (WnckIconCache); + + icon_cache->origin = USING_NO_ICON; + icon_cache->prev_pixmap = None; + icon_cache->icon = NULL; + icon_cache->mini_icon = NULL; + icon_cache->ideal_width = -1; /* won't be a legit width */ + icon_cache->ideal_height = -1; + icon_cache->ideal_mini_width = -1; + icon_cache->ideal_mini_height = -1; + icon_cache->want_fallback = TRUE; + icon_cache->wm_hints_dirty = TRUE; + icon_cache->kwm_win_icon_dirty = TRUE; + icon_cache->net_wm_icon_dirty = TRUE; + + return icon_cache; +} + +static void +clear_icon_cache (WnckIconCache *icon_cache, + gboolean dirty_all) +{ + if (icon_cache->icon) + g_object_unref (G_OBJECT (icon_cache->icon)); + icon_cache->icon = NULL; + + if (icon_cache->mini_icon) + g_object_unref (G_OBJECT (icon_cache->mini_icon)); + icon_cache->mini_icon = NULL; + + icon_cache->origin = USING_NO_ICON; + + if (dirty_all) + { + icon_cache->wm_hints_dirty = TRUE; + icon_cache->kwm_win_icon_dirty = TRUE; + icon_cache->net_wm_icon_dirty = TRUE; + } +} + +void +_wnck_icon_cache_free (WnckIconCache *icon_cache) +{ + clear_icon_cache (icon_cache, FALSE); + + g_slice_free (WnckIconCache, icon_cache); +} + +void +_wnck_icon_cache_property_changed (WnckIconCache *icon_cache, + Atom atom) +{ + if (atom == _wnck_atom_get ("_NET_WM_ICON")) + icon_cache->net_wm_icon_dirty = TRUE; + else if (atom == _wnck_atom_get ("KWM_WIN_ICON")) + icon_cache->kwm_win_icon_dirty = TRUE; + else if (atom == _wnck_atom_get ("WM_HINTS")) + icon_cache->wm_hints_dirty = TRUE; +} + +gboolean +_wnck_icon_cache_get_icon_invalidated (WnckIconCache *icon_cache) +{ + if (icon_cache->origin <= USING_KWM_WIN_ICON && + icon_cache->kwm_win_icon_dirty) + return TRUE; + else if (icon_cache->origin <= USING_WM_HINTS && + icon_cache->wm_hints_dirty) + return TRUE; + else if (icon_cache->origin <= USING_NET_WM_ICON && + icon_cache->net_wm_icon_dirty) + return TRUE; + else if (icon_cache->origin < USING_FALLBACK_ICON && + icon_cache->want_fallback) + return TRUE; + else if (icon_cache->origin == USING_NO_ICON) + return TRUE; + else if (icon_cache->origin == USING_FALLBACK_ICON && + !icon_cache->want_fallback) + return TRUE; + else + return FALSE; +} + +void +_wnck_icon_cache_set_want_fallback (WnckIconCache *icon_cache, + gboolean setting) +{ + icon_cache->want_fallback = setting; +} + +gboolean +_wnck_icon_cache_get_is_fallback (WnckIconCache *icon_cache) +{ + return icon_cache->origin == USING_FALLBACK_ICON; +} + +static void +replace_cache (WnckIconCache *icon_cache, + IconOrigin origin, + GdkPixbuf *new_icon, + GdkPixbuf *new_mini_icon) +{ + clear_icon_cache (icon_cache, FALSE); + + icon_cache->origin = origin; + + if (new_icon) + g_object_ref (G_OBJECT (new_icon)); + + icon_cache->icon = new_icon; + + if (new_mini_icon) + g_object_ref (G_OBJECT (new_mini_icon)); + + icon_cache->mini_icon = new_mini_icon; +} + +static GdkPixbuf* +scaled_from_pixdata (guchar *pixdata, + int w, + int h, + int new_w, + int new_h) +{ + GdkPixbuf *src; + GdkPixbuf *dest; + + src = gdk_pixbuf_new_from_data (pixdata, + GDK_COLORSPACE_RGB, + TRUE, + 8, + w, h, w * 4, + free_pixels, + NULL); + + if (src == NULL) + return NULL; + + if (w != h) + { + GdkPixbuf *tmp; + int size; + + size = MAX (w, h); + + tmp = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, size, size); + + if (tmp != NULL) + { + gdk_pixbuf_fill (tmp, 0); + gdk_pixbuf_copy_area (src, 0, 0, w, h, + tmp, + (size - w) / 2, (size - h) / 2); + + g_object_unref (src); + src = tmp; + } + } + + if (w != new_w || h != new_h) + { + dest = gdk_pixbuf_scale_simple (src, new_w, new_h, GDK_INTERP_BILINEAR); + + g_object_unref (G_OBJECT (src)); + } + else + { + dest = src; + } + + return dest; +} + +gboolean +_wnck_read_icons (Screen *screen, + Window xwindow, + WnckIconCache *icon_cache, + GdkPixbuf **iconp, + int ideal_width, + int ideal_height, + GdkPixbuf **mini_iconp, + int ideal_mini_width, + int ideal_mini_height) +{ + Display *display; + guchar *pixdata; + int w, h; + guchar *mini_pixdata; + int mini_w, mini_h; + Pixmap pixmap; + Pixmap mask; + XWMHints *hints; + + /* Return value is whether the icon changed */ + + g_return_val_if_fail (icon_cache != NULL, FALSE); + + display = DisplayOfScreen (screen); + + *iconp = NULL; + *mini_iconp = NULL; + + if (ideal_width != icon_cache->ideal_width || + ideal_height != icon_cache->ideal_height || + ideal_mini_width != icon_cache->ideal_mini_width || + ideal_mini_height != icon_cache->ideal_mini_height) + clear_icon_cache (icon_cache, TRUE); + + icon_cache->ideal_width = ideal_width; + icon_cache->ideal_height = ideal_height; + icon_cache->ideal_mini_width = ideal_mini_width; + icon_cache->ideal_mini_height = ideal_mini_height; + + if (!_wnck_icon_cache_get_icon_invalidated (icon_cache)) + return FALSE; /* we have no new info to use */ + + pixdata = NULL; + + /* Our algorithm here assumes that we can't have for example origin + * < USING_NET_WM_ICON and icon_cache->net_wm_icon_dirty == FALSE + * unless we have tried to read NET_WM_ICON. + * + * Put another way, if an icon origin is not dirty, then we have + * tried to read it at the current size. If it is dirty, then + * we haven't done that since the last change. + */ + + if (icon_cache->origin <= USING_NET_WM_ICON && + icon_cache->net_wm_icon_dirty) + + { + icon_cache->net_wm_icon_dirty = FALSE; + + if (read_rgb_icon (screen, xwindow, + ideal_width, ideal_height, + ideal_mini_width, ideal_mini_height, + &w, &h, &pixdata, + &mini_w, &mini_h, &mini_pixdata)) + { + *iconp = scaled_from_pixdata (pixdata, w, h, ideal_width, ideal_height); + + *mini_iconp = scaled_from_pixdata (mini_pixdata, mini_w, mini_h, + ideal_mini_width, ideal_mini_height); + + replace_cache (icon_cache, USING_NET_WM_ICON, + *iconp, *mini_iconp); + + return TRUE; + } + } + + if (icon_cache->origin <= USING_WM_HINTS && + icon_cache->wm_hints_dirty) + { + icon_cache->wm_hints_dirty = FALSE; + + _wnck_error_trap_push (display); + hints = XGetWMHints (display, xwindow); + _wnck_error_trap_pop (display); + pixmap = None; + mask = None; + if (hints) + { + if (hints->flags & IconPixmapHint) + pixmap = hints->icon_pixmap; + if (hints->flags & IconMaskHint) + mask = hints->icon_mask; + + XFree (hints); + hints = NULL; + } + + /* We won't update if pixmap is unchanged; + * avoids a get_from_drawable() on every geometry + * hints change + */ + if ((pixmap != icon_cache->prev_pixmap || + mask != icon_cache->prev_mask) && + pixmap != None) + { + if (try_pixmap_and_mask (screen, pixmap, mask, + iconp, ideal_width, ideal_height, + mini_iconp, ideal_mini_width, ideal_mini_height)) + { + icon_cache->prev_pixmap = pixmap; + icon_cache->prev_mask = mask; + + replace_cache (icon_cache, USING_WM_HINTS, + *iconp, *mini_iconp); + + return TRUE; + } + } + } + + if (icon_cache->origin <= USING_KWM_WIN_ICON && + icon_cache->kwm_win_icon_dirty) + { + icon_cache->kwm_win_icon_dirty = FALSE; + + get_kwm_win_icon (screen, xwindow, &pixmap, &mask); + + if ((pixmap != icon_cache->prev_pixmap || + mask != icon_cache->prev_mask) && + pixmap != None) + { + if (try_pixmap_and_mask (screen, pixmap, mask, + iconp, ideal_width, ideal_height, + mini_iconp, ideal_mini_width, ideal_mini_height)) + { + icon_cache->prev_pixmap = pixmap; + icon_cache->prev_mask = mask; + + replace_cache (icon_cache, USING_KWM_WIN_ICON, + *iconp, *mini_iconp); + + return TRUE; + } + } + } + + if (icon_cache->want_fallback && + icon_cache->origin < USING_FALLBACK_ICON) + { + _wnck_get_fallback_icons (iconp, + ideal_width, + ideal_height, + mini_iconp, + ideal_mini_width, + ideal_mini_height); + + replace_cache (icon_cache, USING_FALLBACK_ICON, + *iconp, *mini_iconp); + + return TRUE; + } + + if (!icon_cache->want_fallback && + icon_cache->origin == USING_FALLBACK_ICON) + { + /* Get rid of current icon */ + clear_icon_cache (icon_cache, FALSE); + + return TRUE; + } + + /* found nothing new */ + return FALSE; +} + +static GdkPixbuf* +default_icon_at_size (int width, + int height) +{ + GdkPixbuf *base; + + base = gdk_pixbuf_new_from_resource ("/org/gnome/libwnck/default_icon.png", NULL); + + g_assert (base); + + if ((width < 0 && height < 0) || + (gdk_pixbuf_get_width (base) == width && + gdk_pixbuf_get_height (base) == height)) + { + return base; + } + else + { + GdkPixbuf *scaled; + + scaled = gdk_pixbuf_scale_simple (base, + width > 0 ? width : + gdk_pixbuf_get_width (base), + height > 0 ? height : + gdk_pixbuf_get_height (base), + GDK_INTERP_BILINEAR); + + g_object_unref (G_OBJECT (base)); + + return scaled; + } +} + +void +_wnck_get_fallback_icons (GdkPixbuf **iconp, + int ideal_width, + int ideal_height, + GdkPixbuf **mini_iconp, + int ideal_mini_width, + int ideal_mini_height) +{ + if (iconp) + *iconp = default_icon_at_size (ideal_width > 0 ? ideal_width : + (int) _wnck_get_default_icon_size (), + ideal_height > 0 ? ideal_height : + (int) _wnck_get_default_icon_size ()); + + if (mini_iconp) + *mini_iconp = default_icon_at_size (ideal_mini_width > 0 ? ideal_mini_width : + (int) _wnck_get_default_mini_icon_size (), + ideal_mini_height > 0 ? ideal_mini_height : + (int) _wnck_get_default_mini_icon_size ()); +} + + +void +_wnck_get_window_geometry (Screen *screen, + Window xwindow, + int *xp, + int *yp, + int *widthp, + int *heightp) +{ + Display *display; + int x, y; + unsigned int width, height, bw, depth; + Window root_window; + + width = 1; + height = 1; + + display = DisplayOfScreen (screen); + + _wnck_error_trap_push (display); + + XGetGeometry (display, + xwindow, + &root_window, + &x, &y, &width, &height, &bw, &depth); + + _wnck_error_trap_pop (display); + + _wnck_get_window_position (screen, xwindow, xp, yp); + + if (widthp) + *widthp = width; + if (heightp) + *heightp = height; +} + +void _wnck_set_window_geometry (Screen *screen, + Window xwindow, + int gravity_and_flags, + int x, + int y, + int width, + int height) +{ + Display *display; + Window root; + XEvent xev; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + xev.xclient.type = ClientMessage; + xev.xclient.serial = 0; + xev.xclient.send_event = True; + xev.xclient.display = display; + xev.xclient.window = xwindow; + xev.xclient.message_type = _wnck_atom_get ("_NET_MOVERESIZE_WINDOW"); + xev.xclient.format = 32; + xev.xclient.data.l[0] = gravity_and_flags; + xev.xclient.data.l[1] = x; + xev.xclient.data.l[2] = y; + xev.xclient.data.l[3] = width; + xev.xclient.data.l[4] = height; + + _wnck_error_trap_push (display); + XSendEvent (display, + root, + False, + SubstructureRedirectMask | SubstructureNotifyMask, + &xev); + _wnck_error_trap_pop (display); +} + +void +_wnck_get_window_position (Screen *screen, + Window xwindow, + int *xp, + int *yp) +{ + Display *display; + Window root; + int x, y; + Window child; + + x = 0; + y = 0; + + display = DisplayOfScreen (screen); + root = RootWindowOfScreen (screen); + + _wnck_error_trap_push (display); + XTranslateCoordinates (display, + xwindow, + root, + 0, 0, + &x, &y, &child); + _wnck_error_trap_pop (display); + + if (xp) + *xp = x; + if (yp) + *yp = y; +} + +void +_wnck_set_icon_geometry (Screen *screen, + Window xwindow, + int x, + int y, + int width, + int height) +{ + Display *display; + gulong data[4]; + + display = DisplayOfScreen (screen); + + data[0] = x; + data[1] = y; + data[2] = width; + data[3] = height; + + _wnck_error_trap_push (display); + + XChangeProperty (display, + xwindow, + _wnck_atom_get ("_NET_WM_ICON_GEOMETRY"), + XA_CARDINAL, 32, PropModeReplace, + (guchar *)&data, 4); + + _wnck_error_trap_pop (display); +} + +GdkDisplay* +_wnck_gdk_display_lookup_from_display (Display *display) +{ + GdkDisplay *gdkdisplay = NULL; + + gdkdisplay = gdk_x11_lookup_xdisplay (display); + + if (!gdkdisplay) + g_warning ("No GdkDisplay matching Display \"%s\" was found.\n", + DisplayString (display)); + + return gdkdisplay; +} + +GdkWindow* +_wnck_gdk_window_lookup_from_window (Screen *screen, + Window xwindow) +{ + Display *display; + GdkDisplay *gdkdisplay; + + display = DisplayOfScreen (screen); + gdkdisplay = _wnck_gdk_display_lookup_from_display (display); + if (!gdkdisplay) + return NULL; + + return gdk_x11_window_lookup_for_display (gdkdisplay, xwindow); +} + +/* orientation of pager */ +#define _NET_WM_ORIENTATION_HORZ 0 +#define _NET_WM_ORIENTATION_VERT 1 + +/* starting corner for counting spaces */ +#define _NET_WM_TOPLEFT 0 +#define _NET_WM_TOPRIGHT 1 +#define _NET_WM_BOTTOMRIGHT 2 +#define _NET_WM_BOTTOMLEFT 3 + +void +_wnck_set_desktop_layout (Screen *xscreen, + int rows, + int columns) +{ + Display *display; + Window root; + gulong data[4]; + + /* FIXME: hack, hack, hack so as not + * to have to add a orientation param + * to wnck_screen_try_set_workspace_layout. + * + * Remove this crack asap. + */ + g_assert ((rows == 0) || (columns == 0)); + + display = DisplayOfScreen (xscreen); + root = RootWindowOfScreen (xscreen); + + data[0] = (columns == 0) ? _NET_WM_ORIENTATION_HORZ : _NET_WM_ORIENTATION_VERT; + data[1] = columns; + data[2] = rows; + data[3] = _NET_WM_TOPLEFT; + + _wnck_error_trap_push (display); + + XChangeProperty (display, + root, + _wnck_atom_get ("_NET_DESKTOP_LAYOUT"), + XA_CARDINAL, 32, PropModeReplace, + (guchar *)&data, 4); + + _wnck_error_trap_pop (display); +} + +typedef struct +{ + Window window; + Atom timestamp_prop_atom; +} TimeStampInfo; + +static Bool +timestamp_predicate (Display *display, + XEvent *xevent, + XPointer arg) +{ + TimeStampInfo *info = (TimeStampInfo *)arg; + + if (xevent->type == PropertyNotify && + xevent->xproperty.window == info->window && + xevent->xproperty.atom == info->timestamp_prop_atom) + return True; + + return False; +} + +/** + * get_server_time: + * @display: display from which to get the time + * @window: a #Window, used for communication with the server. + * The window must have PropertyChangeMask in its + * events mask or a hang will result. + * + * Routine to get the current X server time stamp. + * + * Return value: the time stamp. + **/ +static Time +get_server_time (Display *display, + Window window) +{ + unsigned char c = 'a'; + XEvent xevent; + TimeStampInfo info; + + info.timestamp_prop_atom = _wnck_atom_get ("_TIMESTAMP_PROP"); + info.window = window; + + XChangeProperty (display, window, + info.timestamp_prop_atom, info.timestamp_prop_atom, + 8, PropModeReplace, &c, 1); + + XIfEvent (display, &xevent, + timestamp_predicate, (XPointer)&info); + + return xevent.xproperty.time; +} + +typedef struct +{ + Display *display; + int screen_number; + int token; + Window window; + Atom selection_atom; + Atom manager_atom; +} LayoutManager; + +static GSList *layout_managers = NULL; +static int next_token = 1; + +static void +_wnck_free_layout_manager (LayoutManager *lm) +{ + _wnck_error_trap_push (lm->display); + XDestroyWindow (lm->display, lm->window); + _wnck_error_trap_pop (lm->display); + + g_slice_free (LayoutManager, lm); + + layout_managers = g_slist_remove (layout_managers, lm); +} + +int +_wnck_try_desktop_layout_manager (Screen *xscreen, + int current_token) +{ + Display *display; + Window root; + Atom selection_atom; + Window owner; + GSList *tmp; + int number; + Time timestamp; + XClientMessageEvent xev; + char buffer[256]; + LayoutManager *lm; + + display = DisplayOfScreen (xscreen); + root = RootWindowOfScreen (xscreen); + number = XScreenNumberOfScreen (xscreen); + + sprintf (buffer, "_NET_DESKTOP_LAYOUT_S%d", number); + selection_atom = _wnck_atom_get (buffer); + + owner = XGetSelectionOwner (display, selection_atom); + + tmp = layout_managers; + while (tmp != NULL) + { + lm = tmp->data; + + if (display == lm->display && + number == lm->screen_number) + { + if (current_token == lm->token) + { + if (owner == lm->window) + return current_token; /* we still have the selection */ + else + { /* we lost the selection */ + _wnck_free_layout_manager (lm); + break; + } + } + else + return WNCK_NO_MANAGER_TOKEN; /* someone else has it */ + } + + tmp = tmp->next; + } + + if (owner != None) + return WNCK_NO_MANAGER_TOKEN; /* someone else has the selection */ + + /* No one has the selection at the moment */ + + lm = g_slice_new0 (LayoutManager); + + lm->display = display; + lm->screen_number = number; + lm->token = next_token; + ++next_token; + + lm->selection_atom = selection_atom; + lm->manager_atom = _wnck_atom_get ("MANAGER"); + + _wnck_error_trap_push (display); + + lm->window = XCreateSimpleWindow (display, + root, + 0, 0, 10, 10, 0, + WhitePixel (display, number), + WhitePixel (display, number)); + + XSelectInput (display, lm->window, PropertyChangeMask); + timestamp = get_server_time (display, lm->window); + + XSetSelectionOwner (display, lm->selection_atom, + lm->window, timestamp); + + _wnck_error_trap_pop (display); + + /* Check to see if we managed to claim the selection. */ + + if (XGetSelectionOwner (display, lm->selection_atom) != + lm->window) + { + g_free (lm); + return WNCK_NO_MANAGER_TOKEN; + } + + xev.type = ClientMessage; + xev.window = root; + xev.message_type = lm->manager_atom; + xev.format = 32; + xev.data.l[0] = timestamp; + xev.data.l[1] = lm->selection_atom; + xev.data.l[2] = lm->window; + xev.data.l[3] = 0; /* manager specific data */ + xev.data.l[4] = 0; /* manager specific data */ + + _wnck_error_trap_push (display); + XSendEvent (display, root, + False, StructureNotifyMask, (XEvent *)&xev); + _wnck_error_trap_pop (display); + + layout_managers = g_slist_prepend (layout_managers, + lm); + + return lm->token; +} + +void +_wnck_release_desktop_layout_manager (Screen *xscreen, + int current_token) +{ + Display *display; + GSList *tmp; + int number; + LayoutManager *lm; + + display = DisplayOfScreen (xscreen); + number = XScreenNumberOfScreen (xscreen); + + tmp = layout_managers; + while (tmp != NULL) + { + lm = tmp->data; + + if (display == lm->display && + number == lm->screen_number) + { + if (current_token == lm->token) + { + _wnck_error_trap_push (display); + + /* release selection ownership */ + if (XGetSelectionOwner (display, lm->selection_atom) != + lm->window) + { + Time timestamp; + + timestamp = get_server_time (display, lm->window); + XSetSelectionOwner (display, lm->selection_atom, + None, timestamp); + } + + _wnck_error_trap_pop (display); + + _wnck_free_layout_manager (lm); + return; + } + } + + tmp = tmp->next; + } +} + +gboolean +_wnck_desktop_layout_manager_process_event (XEvent *xev) +{ + GSList *tmp; + LayoutManager *lm; + + if (xev->type != SelectionClear) + return FALSE; + + tmp = layout_managers; + while (tmp != NULL) + { + lm = tmp->data; + + if (xev->xany.display == lm->display && + xev->xany.window == lm->window && + xev->xselectionclear.selection == lm->selection_atom) + { + _wnck_free_layout_manager (lm); + return TRUE; + } + + tmp = tmp->next; + } + + return FALSE; +} diff --git a/libwnck/xutils.h b/libwnck/xutils.h new file mode 100644 index 0000000..6426d8d --- /dev/null +++ b/libwnck/xutils.h @@ -0,0 +1,235 @@ +/* Xlib utilities */ +/* vim: set sw=2 et: */ + +/* + * Copyright (C) 2001 Havoc Pennington + * Copyright (C) 2005-2007 Vincent Untz + * + * 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; if not, see . + */ + +#ifndef WNCK_XUTILS_H +#define WNCK_XUTILS_H + +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define WNCK_APP_WINDOW_EVENT_MASK (PropertyChangeMask | StructureNotifyMask) + +gboolean _wnck_get_cardinal (Screen *screen, + Window xwindow, + Atom atom, + int *val); +int _wnck_get_wm_state (Screen *screen, + Window xwindow); +gboolean _wnck_get_window (Screen *screen, + Window xwindow, + Atom atom, + Window *val); +gboolean _wnck_get_pixmap (Screen *screen, + Window xwindow, + Atom atom, + Pixmap *val); +gboolean _wnck_get_atom (Screen *screen, + Window xwindow, + Atom atom, + Atom *val); +char* _wnck_get_text_property (Screen *screen, + Window xwindow, + Atom atom); +char* _wnck_get_utf8_property (Screen *screen, + Window xwindow, + Atom atom); +gboolean _wnck_get_window_list (Screen *screen, + Window xwindow, + Atom atom, + Window **windows, + int *len); +gboolean _wnck_get_atom_list (Screen *screen, + Window xwindow, + Atom atom, + Atom **atoms, + int *len); +gboolean _wnck_get_cardinal_list (Screen *screen, + Window xwindow, + Atom atom, + gulong **cardinals, + int *len); +char** _wnck_get_utf8_list (Screen *screen, + Window xwindow, + Atom atom); + +void _wnck_set_utf8_list (Screen *screen, + Window xwindow, + Atom atom, + char **list); + +void _wnck_error_trap_push (Display *display); +int _wnck_error_trap_pop (Display *display); + +#define _wnck_atom_get(atom_name) gdk_x11_get_xatom_by_name (atom_name) +#define _wnck_atom_name(atom) gdk_x11_get_xatom_name (atom) + +void _wnck_event_filter_init (void); +void _wnck_event_filter_shutdown (void); + +int _wnck_xid_equal (gconstpointer v1, + gconstpointer v2); +guint _wnck_xid_hash (gconstpointer v); + +void _wnck_iconify (Screen *screen, + Window xwindow); +void _wnck_deiconify (Screen *screen, + Window xwindow); + +void _wnck_close (Screen *screen, + Window xwindow, + Time timestamp); + +void _wnck_change_state (Screen *screen, + Window xwindow, + gboolean add, + Atom state1, + Atom state2); +void _wnck_change_workspace (Screen *screen, + Window xwindow, + int new_space); +void _wnck_activate (Screen *screen, + Window xwindow, + Time timestamp); +void _wnck_activate_workspace (Screen *screen, + int new_active_space, + Time timestamp); +void _wnck_change_viewport (Screen *screen, + int x, + int y); + +char* _wnck_get_session_id (Screen *screen, + Window xwindow); +int _wnck_get_pid (Screen *screen, + Window xwindow); +char* _wnck_get_name (Screen *screen, + Window xwindow); +char* _wnck_get_icon_name (Screen *screen, + Window xwindow); +char* _wnck_get_res_class_utf8 (Screen *screen, + Window xwindow); +void _wnck_get_wmclass (Screen *screen, + Window xwindow, + char **res_class, + char **res_name); +gboolean _wnck_get_frame_extents (Screen *screen, + Window xwindow, + int *left_frame, + int *right_frame, + int *top_frame, + int *bottom_frame); + +int _wnck_select_input (Screen *screen, + Window xwindow, + int mask, + gboolean update); + +void _wnck_keyboard_move (Screen *screen, + Window xwindow); + +void _wnck_keyboard_size (Screen *screen, + Window xwindow); + +void _wnck_toggle_showing_desktop (Screen *screen, + gboolean show); + +typedef struct _WnckIconCache WnckIconCache; + +WnckIconCache *_wnck_icon_cache_new (void); +void _wnck_icon_cache_free (WnckIconCache *icon_cache); +void _wnck_icon_cache_property_changed (WnckIconCache *icon_cache, + Atom atom); +gboolean _wnck_icon_cache_get_icon_invalidated (WnckIconCache *icon_cache); +void _wnck_icon_cache_set_want_fallback (WnckIconCache *icon_cache, + gboolean setting); +gboolean _wnck_icon_cache_get_is_fallback (WnckIconCache *icon_cache); + +gboolean _wnck_read_icons (Screen *screen, + Window xwindow, + WnckIconCache *icon_cache, + GdkPixbuf **iconp, + int ideal_width, + int ideal_height, + GdkPixbuf **mini_iconp, + int ideal_mini_width, + int ideal_mini_height); +void _wnck_get_fallback_icons (GdkPixbuf **iconp, + int ideal_width, + int ideal_height, + GdkPixbuf **mini_iconp, + int ideal_mini_width, + int ideal_mini_height); + + + +void _wnck_get_window_geometry (Screen *screen, + Window xwindow, + int *xp, + int *yp, + int *widthp, + int *heightp); +void _wnck_set_window_geometry (Screen *screen, + Window xwindow, + int gravity_and_flags, + int x, + int y, + int width, + int height); + +void _wnck_get_window_position (Screen *screen, + Window xwindow, + int *xp, + int *yp); + +void _wnck_set_icon_geometry (Screen *screen, + Window xwindow, + int x, + int y, + int width, + int height); + +void _wnck_set_desktop_layout (Screen *xscreen, + int rows, + int columns); + +GdkPixbuf* _wnck_gdk_pixbuf_get_from_pixmap (Screen *screen, + Pixmap xpixmap); + +GdkDisplay* _wnck_gdk_display_lookup_from_display (Display *display); + +GdkWindow* _wnck_gdk_window_lookup_from_window (Screen *screen, + Window xwindow); + +#define WNCK_NO_MANAGER_TOKEN 0 + +int _wnck_try_desktop_layout_manager (Screen *xscreen, + int current_token); +void _wnck_release_desktop_layout_manager (Screen *xscreen, + int current_token); +gboolean _wnck_desktop_layout_manager_process_event (XEvent *xev); + +G_END_DECLS + +#endif /* WNCK_XUTILS_H */ diff --git a/m4/ax_append_compile_flags.m4 b/m4/ax_append_compile_flags.m4 new file mode 100644 index 0000000..5b6f1af --- /dev/null +++ b/m4/ax_append_compile_flags.m4 @@ -0,0 +1,67 @@ +# ============================================================================ +# https://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html +# ============================================================================ +# +# SYNOPSIS +# +# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# For every FLAG1, FLAG2 it is checked whether the compiler works with the +# flag. If it does, the flag is added FLAGS-VARIABLE +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. During the check the flag is always added to the +# current language's flags. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: This macro depends on the AX_APPEND_FLAG and +# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with +# AX_APPEND_LINK_FLAGS. +# +# LICENSE +# +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AC_DEFUN([AX_APPEND_COMPILE_FLAGS], +[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) +for flag in $1; do + AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3], [$4]) +done +])dnl AX_APPEND_COMPILE_FLAGS diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4 new file mode 100644 index 0000000..e8c5312 --- /dev/null +++ b/m4/ax_append_flag.m4 @@ -0,0 +1,71 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE]) +# +# DESCRIPTION +# +# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space +# added in between. +# +# If FLAGS-VARIABLE is not specified, the current language's flags (e.g. +# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains +# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly +# FLAG. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 7 + +AC_DEFUN([AX_APPEND_FLAG], +[dnl +AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF +AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])]) +AS_VAR_SET_IF(FLAGS,[ + AS_CASE([" AS_VAR_GET(FLAGS) "], + [*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])], + [ + AS_VAR_APPEND(FLAGS,[" $1"]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) + ], + [ + AS_VAR_SET(FLAGS,[$1]) + AC_RUN_LOG([: FLAGS="$FLAGS"]) + ]) +AS_VAR_POPDEF([FLAGS])dnl +])dnl AX_APPEND_FLAG diff --git a/m4/ax_append_link_flags.m4 b/m4/ax_append_link_flags.m4 new file mode 100644 index 0000000..6f7f174 --- /dev/null +++ b/m4/ax_append_link_flags.m4 @@ -0,0 +1,65 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_append_link_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_APPEND_LINK_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# For every FLAG1, FLAG2 it is checked whether the linker works with the +# flag. If it does, the flag is added FLAGS-VARIABLE +# +# If FLAGS-VARIABLE is not specified, the linker's flags (LDFLAGS) is +# used. During the check the flag is always added to the linker's flags. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: This macro depends on the AX_APPEND_FLAG and AX_CHECK_LINK_FLAG. +# Please keep this macro in sync with AX_APPEND_COMPILE_FLAGS. +# +# LICENSE +# +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 6 + +AC_DEFUN([AX_APPEND_LINK_FLAGS], +[AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) +for flag in $1; do + AX_CHECK_LINK_FLAG([$flag], [AX_APPEND_FLAG([$flag], [m4_default([$2], [LDFLAGS])])], [], [$3], [$4]) +done +])dnl AX_APPEND_LINK_FLAGS diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..dcabb92 --- /dev/null +++ b/m4/ax_check_compile_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS diff --git a/m4/ax_check_enable_debug.m4 b/m4/ax_check_enable_debug.m4 new file mode 100644 index 0000000..d36bcdf --- /dev/null +++ b/m4/ax_check_enable_debug.m4 @@ -0,0 +1,124 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_enable_debug.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_ENABLE_DEBUG([enable by default=yes/info/profile/no], [ENABLE DEBUG VARIABLES ...], [DISABLE DEBUG VARIABLES NDEBUG ...], [IS-RELEASE]) +# +# DESCRIPTION +# +# Check for the presence of an --enable-debug option to configure, with +# the specified default value used when the option is not present. Return +# the value in the variable $ax_enable_debug. +# +# Specifying 'yes' adds '-g -O0' to the compilation flags for all +# languages. Specifying 'info' adds '-g' to the compilation flags. +# Specifying 'profile' adds '-g -pg' to the compilation flags and '-pg' to +# the linking flags. Otherwise, nothing is added. +# +# Define the variables listed in the second argument if debug is enabled, +# defaulting to no variables. Defines the variables listed in the third +# argument if debug is disabled, defaulting to NDEBUG. All lists of +# variables should be space-separated. +# +# If debug is not enabled, ensure AC_PROG_* will not add debugging flags. +# Should be invoked prior to any AC_PROG_* compiler checks. +# +# IS-RELEASE can be used to change the default to 'no' when making a +# release. Set IS-RELEASE to 'yes' or 'no' as appropriate. By default, it +# uses the value of $ax_is_release, so if you are using the AX_IS_RELEASE +# macro, there is no need to pass this parameter. +# +# AX_IS_RELEASE([git-directory]) +# AX_CHECK_ENABLE_DEBUG() +# +# LICENSE +# +# Copyright (c) 2011 Rhys Ulerich +# Copyright (c) 2014, 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 8 + +AC_DEFUN([AX_CHECK_ENABLE_DEBUG],[ + AC_BEFORE([$0],[AC_PROG_CC])dnl + AC_BEFORE([$0],[AC_PROG_CXX])dnl + AC_BEFORE([$0],[AC_PROG_F77])dnl + AC_BEFORE([$0],[AC_PROG_FC])dnl + + AC_MSG_CHECKING(whether to enable debugging) + + ax_enable_debug_default=m4_tolower(m4_normalize(ifelse([$1],,[no],[$1]))) + ax_enable_debug_is_release=m4_tolower(m4_normalize(ifelse([$4],, + [$ax_is_release], + [$4]))) + + # If this is a release, override the default. + AS_IF([test "$ax_enable_debug_is_release" = "yes"], + [ax_enable_debug_default="no"]) + + m4_define(ax_enable_debug_vars,[m4_normalize(ifelse([$2],,,[$2]))]) + m4_define(ax_disable_debug_vars,[m4_normalize(ifelse([$3],,[NDEBUG],[$3]))]) + + AC_ARG_ENABLE(debug, + [AS_HELP_STRING([--enable-debug=]@<:@yes/info/profile/no@:>@,[compile with debugging])], + [],enable_debug=$ax_enable_debug_default) + + # empty mean debug yes + AS_IF([test "x$enable_debug" = "x"], + [enable_debug="yes"]) + + # case of debug + AS_CASE([$enable_debug], + [yes],[ + AC_MSG_RESULT(yes) + CFLAGS="${CFLAGS} -g -O0" + CXXFLAGS="${CXXFLAGS} -g -O0" + FFLAGS="${FFLAGS} -g -O0" + FCFLAGS="${FCFLAGS} -g -O0" + OBJCFLAGS="${OBJCFLAGS} -g -O0" + ], + [info],[ + AC_MSG_RESULT(info) + CFLAGS="${CFLAGS} -g" + CXXFLAGS="${CXXFLAGS} -g" + FFLAGS="${FFLAGS} -g" + FCFLAGS="${FCFLAGS} -g" + OBJCFLAGS="${OBJCFLAGS} -g" + ], + [profile],[ + AC_MSG_RESULT(profile) + CFLAGS="${CFLAGS} -g -pg" + CXXFLAGS="${CXXFLAGS} -g -pg" + FFLAGS="${FFLAGS} -g -pg" + FCFLAGS="${FCFLAGS} -g -pg" + OBJCFLAGS="${OBJCFLAGS} -g -pg" + LDFLAGS="${LDFLAGS} -pg" + ], + [ + AC_MSG_RESULT(no) + dnl Ensure AC_PROG_CC/CXX/F77/FC/OBJC will not enable debug flags + dnl by setting any unset environment flag variables + AS_IF([test "x${CFLAGS+set}" != "xset"], + [CFLAGS=""]) + AS_IF([test "x${CXXFLAGS+set}" != "xset"], + [CXXFLAGS=""]) + AS_IF([test "x${FFLAGS+set}" != "xset"], + [FFLAGS=""]) + AS_IF([test "x${FCFLAGS+set}" != "xset"], + [FCFLAGS=""]) + AS_IF([test "x${OBJCFLAGS+set}" != "xset"], + [OBJCFLAGS=""]) + ]) + + dnl Define various variables if debugging is disabled. + dnl assert.h is a NOP if NDEBUG is defined, so define it by default. + AS_IF([test "x$enable_debug" = "xyes"], + [m4_map_args_w(ax_enable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is enabled])])], + [m4_map_args_w(ax_disable_debug_vars, [AC_DEFINE(], [,,[Define if debugging is disabled])])]) + ax_enable_debug=$enable_debug +]) diff --git a/m4/ax_check_link_flag.m4 b/m4/ax_check_link_flag.m4 new file mode 100644 index 0000000..819409a --- /dev/null +++ b/m4/ax_check_link_flag.m4 @@ -0,0 +1,74 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the linker or gives an error. +# (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# INPUT gives an alternative input source to AC_LINK_IFELSE. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program 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 General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 5 + +AC_DEFUN([AX_CHECK_LINK_FLAG], +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl +AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $4 $1" + AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + LDFLAGS=$ax_check_save_flags]) +AS_VAR_IF(CACHEVAR,yes, + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_LINK_FLAGS diff --git a/m4/ax_compiler_flags.m4 b/m4/ax_compiler_flags.m4 new file mode 100644 index 0000000..ddb0456 --- /dev/null +++ b/m4/ax_compiler_flags.m4 @@ -0,0 +1,158 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS([CFLAGS-VARIABLE], [LDFLAGS-VARIABLE], [IS-RELEASE], [EXTRA-BASE-CFLAGS], [EXTRA-YES-CFLAGS], [UNUSED], [UNUSED], [UNUSED], [EXTRA-BASE-LDFLAGS], [EXTRA-YES-LDFLAGS], [UNUSED], [UNUSED], [UNUSED]) +# +# DESCRIPTION +# +# Check for the presence of an --enable-compile-warnings option to +# configure, defaulting to "error" in normal operation, or "yes" if +# IS-RELEASE is equal to "yes". Return the value in the variable +# $ax_enable_compile_warnings. +# +# Depending on the value of --enable-compile-warnings, different compiler +# warnings are checked to see if they work with the current compiler and, +# if so, are appended to CFLAGS-VARIABLE and LDFLAGS-VARIABLE. This +# allows a consistent set of baseline compiler warnings to be used across +# a code base, irrespective of any warnings enabled locally by individual +# developers. By standardising the warnings used by all developers of a +# project, the project can commit to a zero-warnings policy, using -Werror +# to prevent compilation if new warnings are introduced. This makes +# catching bugs which are flagged by warnings a lot easier. +# +# By providing a consistent --enable-compile-warnings argument across all +# projects using this macro, continuous integration systems can easily be +# configured the same for all projects. Automated systems or build +# systems aimed at beginners may want to pass the --disable-Werror +# argument to unconditionally prevent warnings being fatal. +# +# --enable-compile-warnings can take the values: +# +# * no: Base compiler warnings only; not even -Wall. +# * yes: The above, plus a broad range of useful warnings. +# * error: The above, plus -Werror so that all warnings are fatal. +# Use --disable-Werror to override this and disable fatal +# warnings. +# +# The set of base and enabled flags can be augmented using the +# EXTRA-*-CFLAGS and EXTRA-*-LDFLAGS variables, which are tested and +# appended to the output variable if --enable-compile-warnings is not +# "no". Flags should not be disabled using these arguments, as the entire +# point of AX_COMPILER_FLAGS is to enforce a consistent set of useful +# compiler warnings on code, using warnings which have been chosen for low +# false positive rates. If a compiler emits false positives for a +# warning, a #pragma should be used in the code to disable the warning +# locally. See: +# +# https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas +# +# The EXTRA-* variables should only be used to supply extra warning flags, +# and not general purpose compiler flags, as they are controlled by +# configure options such as --disable-Werror. +# +# IS-RELEASE can be used to disable -Werror when making a release, which +# is useful for those hairy moments when you just want to get the release +# done as quickly as possible. Set it to "yes" to disable -Werror. By +# default, it uses the value of $ax_is_release, so if you are using the +# AX_IS_RELEASE macro, there is no need to pass this parameter. For +# example: +# +# AX_IS_RELEASE([git-directory]) +# AX_COMPILER_FLAGS() +# +# CFLAGS-VARIABLE defaults to WARN_CFLAGS, and LDFLAGS-VARIABLE defaults +# to WARN_LDFLAGS. Both variables are AC_SUBST-ed by this macro, but must +# be manually added to the CFLAGS and LDFLAGS variables for each target in +# the code base. +# +# If C++ language support is enabled with AC_PROG_CXX, which must occur +# before this macro in configure.ac, warning flags for the C++ compiler +# are AC_SUBST-ed as WARN_CXXFLAGS, and must be manually added to the +# CXXFLAGS variables for each target in the code base. EXTRA-*-CFLAGS can +# be used to augment the base and enabled flags. +# +# Warning flags for g-ir-scanner (from GObject Introspection) are +# AC_SUBST-ed as WARN_SCANNERFLAGS. This variable must be manually added +# to the SCANNERFLAGS variable for each GIR target in the code base. If +# extra g-ir-scanner flags need to be enabled, the AX_COMPILER_FLAGS_GIR +# macro must be invoked manually. +# +# AX_COMPILER_FLAGS may add support for other tools in future, in addition +# to the compiler and linker. No extra EXTRA-* variables will be added +# for those tools, and all extra support will still use the single +# --enable-compile-warnings configure option. For finer grained control +# over the flags for individual tools, use AX_COMPILER_FLAGS_CFLAGS, +# AX_COMPILER_FLAGS_LDFLAGS and AX_COMPILER_FLAGS_* for new tools. +# +# The UNUSED variables date from a previous version of this macro, and are +# automatically appended to the preceding non-UNUSED variable. They should +# be left empty in new uses of the macro. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# Copyright (c) 2015 David King +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 14 + +# _AX_COMPILER_FLAGS_LANG([LANGNAME]) +m4_defun([_AX_COMPILER_FLAGS_LANG], +[m4_ifdef([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [], + [m4_define([_AX_COMPILER_FLAGS_LANG_]$1[_enabled], [])dnl + AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_]$1[FLAGS])])dnl +]) + +AC_DEFUN([AX_COMPILER_FLAGS],[ + # C support is enabled by default. + _AX_COMPILER_FLAGS_LANG([C]) + # Only enable C++ support if AC_PROG_CXX is called. The redefinition of + # AC_PROG_CXX is so that a fatal error is emitted if this macro is called + # before AC_PROG_CXX, which would otherwise cause no C++ warnings to be + # checked. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AX_COMPILER_FLAGS_LANG([CXX])], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AX_COMPILER_FLAGS_LANG([CXX])])]) + AX_REQUIRE_DEFINED([AX_COMPILER_FLAGS_LDFLAGS]) + + # Default value for IS-RELEASE is $ax_is_release + ax_compiler_flags_is_release=m4_tolower(m4_normalize(ifelse([$3],, + [$ax_is_release], + [$3]))) + + AC_ARG_ENABLE([compile-warnings], + AS_HELP_STRING([--enable-compile-warnings=@<:@no/yes/error@:>@], + [Enable compiler warnings and errors]),, + [AS_IF([test "$ax_compiler_flags_is_release" = "yes"], + [enable_compile_warnings="yes"], + [enable_compile_warnings="error"])]) + AC_ARG_ENABLE([Werror], + AS_HELP_STRING([--disable-Werror], + [Unconditionally make all compiler warnings non-fatal]),, + [enable_Werror=maybe]) + + # Return the user's chosen warning level + AS_IF([test "$enable_Werror" = "no" -a \ + "$enable_compile_warnings" = "error"],[ + enable_compile_warnings="yes" + ]) + + ax_enable_compile_warnings=$enable_compile_warnings + + AX_COMPILER_FLAGS_CFLAGS([$1],[$ax_compiler_flags_is_release], + [$4],[$5 $6 $7 $8]) + m4_ifdef([_AX_COMPILER_FLAGS_LANG_CXX_enabled], + [AX_COMPILER_FLAGS_CXXFLAGS([WARN_CXXFLAGS], + [$ax_compiler_flags_is_release], + [$4],[$5 $6 $7 $8])]) + AX_COMPILER_FLAGS_LDFLAGS([$2],[$ax_compiler_flags_is_release], + [$9],[$10 $11 $12 $13]) + AX_COMPILER_FLAGS_GIR([WARN_SCANNERFLAGS],[$ax_compiler_flags_is_release]) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_cflags.m4 b/m4/ax_compiler_flags_cflags.m4 new file mode 100644 index 0000000..aeb16e3 --- /dev/null +++ b/m4/ax_compiler_flags_cflags.m4 @@ -0,0 +1,140 @@ +# ============================================================================= +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_cflags.html +# ============================================================================= +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_CFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the C compiler to VARIABLE, which defaults to +# WARN_CFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be +# manually added to the CFLAGS variable for each target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 14 + +AC_DEFUN([AX_COMPILER_FLAGS_CFLAGS],[ + AC_REQUIRE([AC_PROG_SED]) + AX_REQUIRE_DEFINED([AX_APPEND_COMPILE_FLAGS]) + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) + + # Variable names + m4_define([ax_warn_cflags_variable], + [m4_normalize(ifelse([$1],,[WARN_CFLAGS],[$1]))]) + + AC_LANG_PUSH([C]) + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_cflags variable, and + # Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ + ax_compiler_flags_test="-Werror=unknown-warning-option" + ],[ + ax_compiler_flags_test="" + ]) + + # Check that -Wno-suggest-attribute=format is supported + AX_CHECK_COMPILE_FLAG([-Wno-suggest-attribute=format],[ + ax_compiler_no_suggest_attribute_flags="-Wno-suggest-attribute=format" + ],[ + ax_compiler_no_suggest_attribute_flags="" + ]) + + # Base flags + AX_APPEND_COMPILE_FLAGS([ dnl + -fno-strict-aliasing dnl + $3 dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_COMPILE_FLAGS([ dnl + -Wall dnl + -Wextra dnl + -Wundef dnl + -Wnested-externs dnl + -Wwrite-strings dnl + -Wpointer-arith dnl + -Wmissing-declarations dnl + -Wmissing-prototypes dnl + -Wstrict-prototypes dnl + -Wredundant-decls dnl + -Wno-unused-parameter dnl + -Wno-missing-field-initializers dnl + -Wdeclaration-after-statement dnl + -Wformat=2 dnl + -Wold-style-definition dnl + -Wcast-align dnl + -Wformat-nonliteral dnl + -Wformat-security dnl + -Wsign-compare dnl + -Wstrict-aliasing dnl + -Wshadow dnl + -Winline dnl + -Wpacked dnl + -Wmissing-format-attribute dnl + -Wmissing-noreturn dnl + -Winit-self dnl + -Wredundant-decls dnl + -Wmissing-include-dirs dnl + -Wunused-but-set-variable dnl + -Warray-bounds dnl + -Wimplicit-function-declaration dnl + -Wreturn-type dnl + -Wswitch-enum dnl + -Wswitch-default dnl + $4 dnl + $5 dnl + $6 dnl + $7 dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + AX_APPEND_FLAG([-Werror],ax_warn_cflags_variable) + + AX_APPEND_COMPILE_FLAGS([ dnl + [$ax_compiler_no_suggest_attribute_flags] dnl + ],ax_warn_cflags_variable,[$ax_compiler_flags_test]) + ]) + + # In the flags below, when disabling specific flags, always add *both* + # -Wno-foo and -Wno-error=foo. This fixes the situation where (for example) + # we enable -Werror, disable a flag, and a build bot passes CFLAGS=-Wall, + # which effectively turns that flag back on again as an error. + for flag in $ax_warn_cflags_variable; do + AS_CASE([$flag], + [-Wno-*=*],[], + [-Wno-*],[ + AX_APPEND_COMPILE_FLAGS([-Wno-error=$(AS_ECHO([$flag]) | $SED 's/^-Wno-//')], + ax_warn_cflags_variable, + [$ax_compiler_flags_test]) + ]) + done + + AC_LANG_POP([C]) + + # Substitute the variables + AC_SUBST(ax_warn_cflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_gir.m4 b/m4/ax_compiler_flags_gir.m4 new file mode 100644 index 0000000..5b4924a --- /dev/null +++ b/m4/ax_compiler_flags_gir.m4 @@ -0,0 +1,60 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_gir.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_GIR([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the g-ir-scanner (from GObject Introspection) to +# VARIABLE, which defaults to WARN_SCANNERFLAGS. VARIABLE is AC_SUBST-ed +# by this macro, but must be manually added to the SCANNERFLAGS variable +# for each GIR target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +AC_DEFUN([AX_COMPILER_FLAGS_GIR],[ + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + + # Variable names + m4_define([ax_warn_scannerflags_variable], + [m4_normalize(ifelse([$1],,[WARN_SCANNERFLAGS],[$1]))]) + + # Base flags + AX_APPEND_FLAG([$3],ax_warn_scannerflags_variable) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_FLAG([ dnl + --warn-all dnl + $4 dnl + $5 dnl + $6 dnl + $7 dnl + ],ax_warn_scannerflags_variable) + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags + AX_APPEND_FLAG([ dnl + --warn-error dnl + ],ax_warn_scannerflags_variable) + ]) + + # Substitute the variables + AC_SUBST(ax_warn_scannerflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_compiler_flags_ldflags.m4 b/m4/ax_compiler_flags_ldflags.m4 new file mode 100644 index 0000000..842e329 --- /dev/null +++ b/m4/ax_compiler_flags_ldflags.m4 @@ -0,0 +1,92 @@ +# ============================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_compiler_flags_ldflags.html +# ============================================================================== +# +# SYNOPSIS +# +# AX_COMPILER_FLAGS_LDFLAGS([VARIABLE], [IS-RELEASE], [EXTRA-BASE-FLAGS], [EXTRA-YES-FLAGS]) +# +# DESCRIPTION +# +# Add warning flags for the linker to VARIABLE, which defaults to +# WARN_LDFLAGS. VARIABLE is AC_SUBST-ed by this macro, but must be +# manually added to the LDFLAGS variable for each target in the code base. +# +# This macro depends on the environment set up by AX_COMPILER_FLAGS. +# Specifically, it uses the value of $ax_enable_compile_warnings to decide +# which flags to enable. +# +# LICENSE +# +# Copyright (c) 2014, 2015 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +AC_DEFUN([AX_COMPILER_FLAGS_LDFLAGS],[ + AX_REQUIRE_DEFINED([AX_APPEND_LINK_FLAGS]) + AX_REQUIRE_DEFINED([AX_APPEND_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG]) + AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) + + # Variable names + m4_define([ax_warn_ldflags_variable], + [m4_normalize(ifelse([$1],,[WARN_LDFLAGS],[$1]))]) + + # Always pass -Werror=unknown-warning-option to get Clang to fail on bad + # flags, otherwise they are always appended to the warn_ldflags variable, + # and Clang warns on them for every compilation unit. + # If this is passed to GCC, it will explode, so the flag must be enabled + # conditionally. + AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option],[ + ax_compiler_flags_test="-Werror=unknown-warning-option" + ],[ + ax_compiler_flags_test="" + ]) + + # macOS linker does not have --as-needed + AX_CHECK_LINK_FLAG([-Wl,--no-as-needed], [ + ax_compiler_flags_as_needed_option="-Wl,--no-as-needed" + ], [ + ax_compiler_flags_as_needed_option="" + ]) + + # macOS linker speaks with a different accent + ax_compiler_flags_fatal_warnings_option="" + AX_CHECK_LINK_FLAG([-Wl,--fatal-warnings], [ + ax_compiler_flags_fatal_warnings_option="-Wl,--fatal-warnings" + ]) + AX_CHECK_LINK_FLAG([-Wl,-fatal_warnings], [ + ax_compiler_flags_fatal_warnings_option="-Wl,-fatal_warnings" + ]) + + # Base flags + AX_APPEND_LINK_FLAGS([ dnl + $ax_compiler_flags_as_needed_option dnl + $3 dnl + ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) + + AS_IF([test "$ax_enable_compile_warnings" != "no"],[ + # "yes" flags + AX_APPEND_LINK_FLAGS([$4 $5 $6 $7], + ax_warn_ldflags_variable, + [$ax_compiler_flags_test]) + ]) + AS_IF([test "$ax_enable_compile_warnings" = "error"],[ + # "error" flags; -Werror has to be appended unconditionally because + # it's not possible to test for + # + # suggest-attribute=format is disabled because it gives too many false + # positives + AX_APPEND_LINK_FLAGS([ dnl + $ax_compiler_flags_fatal_warnings_option dnl + ],ax_warn_ldflags_variable,[$ax_compiler_flags_test]) + ]) + + # Substitute the variables + AC_SUBST(ax_warn_ldflags_variable) +])dnl AX_COMPILER_FLAGS diff --git a/m4/ax_is_release.m4 b/m4/ax_is_release.m4 new file mode 100644 index 0000000..9097ddb --- /dev/null +++ b/m4/ax_is_release.m4 @@ -0,0 +1,80 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_is_release.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_IS_RELEASE(POLICY) +# +# DESCRIPTION +# +# Determine whether the code is being configured as a release, or from +# git. Set the ax_is_release variable to 'yes' or 'no'. +# +# If building a release version, it is recommended that the configure +# script disable compiler errors and debug features, by conditionalising +# them on the ax_is_release variable. If building from git, these +# features should be enabled. +# +# The POLICY parameter specifies how ax_is_release is determined. It can +# take the following values: +# +# * git-directory: ax_is_release will be 'no' if a '.git' directory exists +# * minor-version: ax_is_release will be 'no' if the minor version number +# in $PACKAGE_VERSION is odd; this assumes +# $PACKAGE_VERSION follows the 'major.minor.micro' scheme +# * micro-version: ax_is_release will be 'no' if the micro version number +# in $PACKAGE_VERSION is odd; this assumes +# $PACKAGE_VERSION follows the 'major.minor.micro' scheme +# * dash-version: ax_is_release will be 'no' if there is a dash '-' +# in $PACKAGE_VERSION, for example 1.2-pre3, 1.2.42-a8b9 +# or 2.0-dirty (in particular this is suitable for use +# with git-version-gen) +# * always: ax_is_release will always be 'yes' +# * never: ax_is_release will always be 'no' +# +# Other policies may be added in future. +# +# LICENSE +# +# Copyright (c) 2015 Philip Withnall +# Copyright (c) 2016 Collabora Ltd. +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. + +#serial 7 + +AC_DEFUN([AX_IS_RELEASE],[ + AC_BEFORE([AC_INIT],[$0]) + + m4_case([$1], + [git-directory],[ + # $is_release = (.git directory does not exist) + AS_IF([test -d ${srcdir}/.git],[ax_is_release=no],[ax_is_release=yes]) + ], + [minor-version],[ + # $is_release = ($minor_version is even) + minor_version=`echo "$PACKAGE_VERSION" | sed 's/[[^.]][[^.]]*.\([[^.]][[^.]]*\).*/\1/'` + AS_IF([test "$(( $minor_version % 2 ))" -ne 0], + [ax_is_release=no],[ax_is_release=yes]) + ], + [micro-version],[ + # $is_release = ($micro_version is even) + micro_version=`echo "$PACKAGE_VERSION" | sed 's/[[^.]]*\.[[^.]]*\.\([[^.]]*\).*/\1/'` + AS_IF([test "$(( $micro_version % 2 ))" -ne 0], + [ax_is_release=no],[ax_is_release=yes]) + ], + [dash-version],[ + # $is_release = ($PACKAGE_VERSION has a dash) + AS_CASE([$PACKAGE_VERSION], + [*-*], [ax_is_release=no], + [*], [ax_is_release=yes]) + ], + [always],[ax_is_release=yes], + [never],[ax_is_release=no], + [ + AC_MSG_ERROR([Invalid policy. Valid policies: git-directory, minor-version, micro-version, dash-version, always, never.]) + ]) +]) diff --git a/m4/ax_require_defined.m4 b/m4/ax_require_defined.m4 new file mode 100644 index 0000000..17c3eab --- /dev/null +++ b/m4/ax_require_defined.m4 @@ -0,0 +1,37 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_REQUIRE_DEFINED(MACRO) +# +# DESCRIPTION +# +# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have +# been defined and thus are available for use. This avoids random issues +# where a macro isn't expanded. Instead the configure script emits a +# non-fatal: +# +# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found +# +# It's like AC_REQUIRE except it doesn't expand the required macro. +# +# Here's an example: +# +# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +# +# LICENSE +# +# Copyright (c) 2014 Mike Frysinger +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_REQUIRE_DEFINED], [dnl + m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) +])dnl AX_REQUIRE_DEFINED diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 0000000..eef5073 --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,420 @@ +# gettext.m4 serial 68 (gettext-0.19.8) +dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], + [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST([BUILD_INCLUDED_LIBINTL]) + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST([DATADIRNAME]) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST([INSTOBJEXT]) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST([GENCAT]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST([INTLOBJS]) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + + +dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4 new file mode 100644 index 0000000..3675543 --- /dev/null +++ b/m4/gtk-doc.m4 @@ -0,0 +1,88 @@ +dnl -*- mode: autoconf -*- + +# serial 2 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found.]) + fi + + dnl check for tools we added during development + dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that + dnl may not be writable by the user. Currently, automake requires that the + dnl test name must end in '.test'. + dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 + AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) + AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + AC_MSG_ERROR([ + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '[$]0'.]) + fi + + dnl don't check for glib if we build glib + if test "x$PACKAGE_NAME" != "xglib"; then + dnl don't fail if someone does not have glib + PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) + fi + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + AC_SUBST([AM_DEFAULT_VERBOSITY]) + + AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/m4/iconv.m4 b/m4/iconv.m4 new file mode 100644 index 0000000..aa159c5 --- /dev/null +++ b/m4/iconv.m4 @@ -0,0 +1,271 @@ +# iconv.m4 serial 19 (gettext-0.18.2) +dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + result |= 16; + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to +dnl avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +dnl This is tricky because of the way 'aclocal' is implemented: +dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. +dnl Otherwise aclocal's initial scan pass would miss the macro definition. +dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. +dnl Otherwise aclocal would emit many "Use of uninitialized value $1" +dnl warnings. +m4_define([gl_iconv_AC_DEFUN], + m4_version_prereq([2.64], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [m4_ifdef([gl_00GNULIB], + [[AC_DEFUN_ONCE( + [$1], [$2])]], + [[AC_DEFUN( + [$1], [$2])]])])) +gl_iconv_AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL([am_cv_proto_iconv], [ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif + ]], + [[]])], + [am_cv_proto_iconv_arg1=""], + [am_cv_proto_iconv_arg1="const"]) + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([ + $am_cv_proto_iconv]) + AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test -n "$am_cv_proto_iconv_arg1"; then + ICONV_CONST="const" + fi + ]) + fi +]) diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 new file mode 100644 index 0000000..aca924c --- /dev/null +++ b/m4/intlmacosx.m4 @@ -0,0 +1,56 @@ +# intlmacosx.m4 serial 5 (gettext-0.18.2) +dnl Copyright (C) 2004-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/m4/introspection.m4 b/m4/introspection.m4 new file mode 100644 index 0000000..d89c3d9 --- /dev/null +++ b/m4/introspection.m4 @@ -0,0 +1,96 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + dnl Canonicalize enable_introspection + enable_introspection=$found_introspection + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + AC_SUBST(INTROSPECTION_CFLAGS) + AC_SUBST(INTROSPECTION_LIBS) + AC_SUBST(INTROSPECTION_MAKEFILE) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 new file mode 100644 index 0000000..6209de6 --- /dev/null +++ b/m4/lib-ld.m4 @@ -0,0 +1,119 @@ +# lib-ld.m4 serial 6 +dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` + while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 = 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 new file mode 100644 index 0000000..6851031 --- /dev/null +++ b/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/m4/libtool.m4 b/m4/libtool.m4 new file mode 100644 index 0000000..ee80844 --- /dev/null +++ b/m4/libtool.m4 @@ -0,0 +1,8387 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 new file mode 100644 index 0000000..94b0829 --- /dev/null +++ b/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 new file mode 100644 index 0000000..48bc934 --- /dev/null +++ b/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 new file mode 100644 index 0000000..fa04b52 --- /dev/null +++ b/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 new file mode 100644 index 0000000..c6b26f8 --- /dev/null +++ b/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/m4/nls.m4 b/m4/nls.m4 new file mode 100644 index 0000000..afdb9ca --- /dev/null +++ b/m4/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 5 (gettext-0.18) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software +dnl Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 0000000..82bea96 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,275 @@ +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. + +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])dnl PKG_PROG_PKG_CONFIG + +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])dnl _PKG_CONFIG + +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])dnl _PKG_SHORT_ERRORS_SUPPORTED + + +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])dnl PKG_CHECK_MODULES + + +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_INSTALLDIR + + +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR diff --git a/m4/po.m4 b/m4/po.m4 new file mode 100644 index 0000000..c5a2f6b --- /dev/null +++ b/m4/po.m4 @@ -0,0 +1,453 @@ +# po.m4 serial 24 (gettext-0.19) +dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.19]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assignment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.50]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..c3420f6 --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,95 @@ +# please keep this list sorted alphabetically +# +am +ar +as +ast +az +be +be@latin +bg +bn +bn_IN +br +bs +ca +ca@valencia +crh +cs +cy +da +de +dz +el +en_CA +en_GB +en@shaw +eo +es +et +eu +fa +fi +fr +fy +ga +gd +gl +gu +he +hi +hr +hu +id +is +it +ja +ka +kk +km +kn +ko +ku +ky +li +lt +lv +mai +mi +mk +ml +mn +mr +ms +nb +ne +nl +nn +oc +or +pa +pl +pt +pt_BR +ro +ru +rw +si +sk +sl +sq +sr +sr@latin +sv +ta +te +th +tr +ug +uk +vi +wa +xh +zh_CN +zh_HK +zh_TW diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..65184f6 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,475 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.19 +GETTEXT_MACRO_VERSION = 0.19 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SED = @SED@ +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot +POFILESDEPS_yes = $(POFILESDEPS_) +POFILESDEPS_no = +POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) + +DISTFILESDEPS_ = update-po +DISTFILESDEPS_yes = $(DISTFILESDEPS_) +DISTFILESDEPS_no = +DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +CHECK_MACRO_VERSION = \ + test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + @$(CHECK_MACRO_VERSION) + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \ + -size -10000000c -exec grep 'GNU @PACKAGE@' \ + /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(POFILESDEPS) + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +# Recreate Makefile by invoking config.status. Explicitly invoke the shell, +# because execution permission bits may not work on the current file system. +# Use @SHELL@, which is the shell determined by autoconf for the use by its +# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && @SHELL@ ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/po/Makevars b/po/Makevars new file mode 100644 index 0000000..51c95e1 --- /dev/null +++ b/po/Makevars @@ -0,0 +1,78 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = libwnck-3.0 + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = libwnck contributors + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = https://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&keywords=I18N+L10N&component=general + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = yes + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +# --quiet to reduce the verbosity. +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = no + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po/POTFILES.in b/po/POTFILES.in new file mode 100644 index 0000000..7a7cb42 --- /dev/null +++ b/po/POTFILES.in @@ -0,0 +1,11 @@ +# List of source files containing translatable strings. +# Please keep this file sorted alphabetically. +libwnck/application.c +libwnck/pager-accessible.c +libwnck/pager.c +libwnck/selector.c +libwnck/tasklist.c +libwnck/window-action-menu.c +libwnck/window.c +libwnck/wnckprop.c +libwnck/workspace.c diff --git a/po/Rules-quot b/po/Rules-quot new file mode 100644 index 0000000..9dc9630 --- /dev/null +++ b/po/Rules-quot @@ -0,0 +1,58 @@ +# This file, Rules-quot, can be copied and used freely without restrictions. +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) $(MSGINIT_OPTIONS) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ + | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ + { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ + $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ + ;; \ + *) \ + $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ + ;; \ + esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ + ; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header diff --git a/po/am.gmo b/po/am.gmo new file mode 100644 index 0000000..3fd8542 Binary files /dev/null and b/po/am.gmo differ diff --git a/po/am.po b/po/am.po new file mode 100644 index 0000000..3ef1b5f --- /dev/null +++ b/po/am.po @@ -0,0 +1,157 @@ +# Translations into the Amharic Language. +# Copyright (C) 2002 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# Ge'ez Frontier Foundation , 2002. +# +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-05 11:49+0200\n" +"PO-Revision-Date: 2003-01-14 11:02+EDT\n" +"Last-Translator: Ge'ez Frontier Foundation \n" +"Language-Team: Amharic \n" +"Language: am\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libwnck/application.c:26 +msgid "untitled application" +msgstr "ያልተሰየሙ መጠቀሚያ ፕሮግራም" + +#: libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "የመሥሪያ ቦታ መቀያየሪያ" + +#: libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "መሥሪያ ቦታዌ መሥከል መቀያየሪያ መሣሪያ" + +#: libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "ወደ መሥሪያ ቦታ %s ለመቀየር ይህንን ያቃጭሉ" + +#: libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "" + +#: libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "" + +#: libwnck/selector.c:747 +msgid "Window Selector" +msgstr "" + +#: libwnck/selector.c:748 +#, fuzzy +msgid "Tool to switch between windows" +msgstr "መሥሪያ ቦታዌ መሥከል መቀያየሪያ መሣሪያ" + +#: libwnck/tasklist.c:690 +msgid "Window List" +msgstr "" + +#: libwnck/tasklist.c:691 +#, fuzzy +msgid "Tool to switch between visible windows" +msgstr "መሥሪያ ቦታዌ መሥከል መቀያየሪያ መሣሪያ" + +#: libwnck/tasklist.c:2324 +#, fuzzy +msgid "_Close All" +msgstr "ዝጋ (_C)" + +#: libwnck/tasklist.c:2339 +#, fuzzy +msgid "_Minimize All" +msgstr "መሳንስ (_M)" + +#: libwnck/tasklist.c:2350 +#, fuzzy +msgid "_Unminimize All" +msgstr "መታሳንስ (_M)" + +#: libwnck/window-action-menu.c:211 +#, fuzzy +msgid "Unmi_nimize" +msgstr "መታሳንስ (_M)" + +#: libwnck/window-action-menu.c:218 +#, fuzzy +msgid "Mi_nimize" +msgstr "መሳንስ (_M)" + +#: libwnck/window-action-menu.c:226 +#, fuzzy +msgid "Unma_ximize" +msgstr "መታስተልቅ (_U)" + +#: libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "መተልቅ (_X)" + +#: libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "ማውረድ (U)" + +#: libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "ማውጣት (_U)" + +#: libwnck/window-action-menu.c:256 +#, fuzzy +msgid "_Only on This Workspace" +msgstr "በዚህ የመሥሪያ ቦታ ላይ ብቻ (_T)" + +#: libwnck/window-action-menu.c:263 +#, fuzzy +msgid "_Always on Visible Workspace" +msgstr "በዚህ የመሥሪያ ቦታ ላይ ብቻ (_T)" + +#: libwnck/window-action-menu.c:378 libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "መሥሪያ ቦታ %d" + +#: libwnck/window-action-menu.c:386 +#, fuzzy +msgid "Workspace 1_0" +msgstr "መሥሪያ ቦታ %d" + +#: libwnck/window-action-menu.c:388 +#, fuzzy, c-format +msgid "Workspace %s%d" +msgstr "መሥሪያ ቦታ %d" + +#: libwnck/window-action-menu.c:485 +#, fuzzy +msgid "_Move" +msgstr "መንቀሳቅስ (_V)" + +#: libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "እንደገና መጧን ማስተሥከል (_R)" + +#: libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "ዝጋ (_C)" + +#: libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "" + +#: libwnck/window.c:32 +msgid "untitled window" +msgstr "ያልተሰየመ መስኮት" + +#~ msgid "Put on _All Workspaces" +#~ msgstr "ሁሉም መሥሪይ ቦታዎች ላይ አድርግ (_A)" diff --git a/po/ar.gmo b/po/ar.gmo new file mode 100644 index 0000000..12651a7 Binary files /dev/null and b/po/ar.gmo differ diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000..5ab8111 --- /dev/null +++ b/po/ar.po @@ -0,0 +1,1261 @@ +# translation of libwnck.po to Arabic +# Copyright (C) 2002,2003, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# Mohammed Gamal , 2002. +# Isam Bayazidi , 2002. +# Arafat Medini , 2003. +# Djihed Afifi , 2006. +# Khaled Hosny , 2006, 2007, 2008, 2009. +# Anas Husseini , 2007. +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-11-28 08:47+0200\n" +"PO-Revision-Date: 2009-11-28 08:46+0300\n" +"Last-Translator: Khaled Hosny \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +"X-Generator: Virtaal 0.5.0-rc1\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "تطبيق غير معنون" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "محوّل مساحات العمل" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "أداة للانتقال بين مساحات العمل" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "انقر هذا للانتقال إلى مساحة العمل %s" + +#: ../libwnck/pager.c:1910 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "انقر لبدء سحب \"%s\"" + +#: ../libwnck/pager.c:1913 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "مساحة العمل الحالية: \"%s\"" + +#: ../libwnck/pager.c:1918 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "انقر للانتقال إلى مساحة العمل \"%s\"" + +#: ../libwnck/selector.c:1172 +msgid "No Windows Open" +msgstr "لا يوجد نافذة مفتوحة" + +#: ../libwnck/selector.c:1225 +msgid "Window Selector" +msgstr "منتقي النوافذ" + +#: ../libwnck/selector.c:1226 +msgid "Tool to switch between windows" +msgstr "أداة للانتقال بين النوافذ" + +#: ../libwnck/tasklist.c:729 +msgid "Window List" +msgstr "قائمة النوافذ" + +#: ../libwnck/tasklist.c:730 +msgid "Tool to switch between visible windows" +msgstr "أداة للانتقال بين النوافذ المرئية" + +#: ../libwnck/tasklist.c:3022 +msgid "Mi_nimize All" +msgstr "_صغّر الكل" + +#: ../libwnck/tasklist.c:3033 +msgid "Un_minimize All" +msgstr "اعكس تص_غير الكل" + +#: ../libwnck/tasklist.c:3041 +msgid "Ma_ximize All" +msgstr "ك_بّر الكل" + +#: ../libwnck/tasklist.c:3052 +msgid "_Unmaximize All" +msgstr "اعكس ت_كبير الكل" + +#: ../libwnck/tasklist.c:3064 +msgid "_Close All" +msgstr "أ_غلق الكل" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "استخدم ر من صفوف" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "ر صفوف" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "أظهر فقط مساحة العمل الحالية" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "استخدم اليمين-إلى-اليسار كاتجاه افتراضي" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "أظهر أسماء مساحات العمل عوضًا عن محتوياتها" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "استخدم اتجاهًا عموديًا" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/test-selector.c:13 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "لا تظهر النافذة في قائمة المهمات" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "جمّع النوافذ دائمًا" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "لا تجمّع النوافذ أبدًا" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "أظهر النوافذ من كل مساحات العمل" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "اسمح بالشفافية" + +#: ../libwnck/window-action-menu.c:417 +msgid "Unmi_nimize" +msgstr "اعكس الت_صغير" + +#: ../libwnck/window-action-menu.c:424 +msgid "Mi_nimize" +msgstr "_صغّر" + +#: ../libwnck/window-action-menu.c:432 +msgid "Unma_ximize" +msgstr "اعكس الت_كبير" + +#: ../libwnck/window-action-menu.c:439 +msgid "Ma_ximize" +msgstr "ك_بّر" + +#: ../libwnck/window-action-menu.c:746 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "مساحة العمل %Id" + +#: ../libwnck/window-action-menu.c:755 ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace 1_0" +msgstr "مساحة العمل 1_0" + +#: ../libwnck/window-action-menu.c:757 ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace %s%d" +msgstr "مساحة العمل %s%Id" + +#: ../libwnck/window-action-menu.c:1047 +msgid "_Move" +msgstr "ا_نقل" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Resize" +msgstr "_حجّم" + +#: ../libwnck/window-action-menu.c:1063 +msgid "Always On _Top" +msgstr "دائمًا _فوق الكل" + +#: ../libwnck/window-action-menu.c:1071 +msgid "_Always on Visible Workspace" +msgstr "فقط على مساحة العمل الم_رئية" + +#: ../libwnck/window-action-menu.c:1076 +msgid "_Only on This Workspace" +msgstr "فقط على مساحة العمل _هذه" + +#: ../libwnck/window-action-menu.c:1083 +msgid "Move to Workspace _Left" +msgstr "انقل لمساحة العمل نحو ال_يسار" + +#: ../libwnck/window-action-menu.c:1089 +msgid "Move to Workspace R_ight" +msgstr "انقل ل_مساحة العمل نحو الي_مين" + +#: ../libwnck/window-action-menu.c:1095 +msgid "Move to Workspace _Up" +msgstr "انقل ل_مساحة العمل ف_وق" + +#: ../libwnck/window-action-menu.c:1101 +msgid "Move to Workspace _Down" +msgstr "انقل ل_مساحة العمل _تحت" + +#: ../libwnck/window-action-menu.c:1104 +msgid "Move to Another _Workspace" +msgstr "انقل ل_مساحة عمل أخرى" + +#: ../libwnck/window-action-menu.c:1124 +msgid "_Close" +msgstr "أ_غلق" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "نافذة غير معنونة" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "معرّف إكس ويندو الخاص بالنافذة لفحصه أو تعديله" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "معرّف إكس" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "معرّف إكس ويندو الخاص بقائد مجموعة تطبيق لفحصه" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "موارد الفئة الخاصة بمجموعة الفئة لفحصها" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "الفئة" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "رقم مساحة العمل لفحصه أو تعديله" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "الرقم" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "رقم الشاشة لفحصه أو تعديله" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "الاسم المستعار ل‍ --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"اسرد نوافذ المجموعة/الشاشة/مساحة العمل الخاصة بالتطبيق/الفئة (صيغة الخرج: " +"\"معرّف إكس: اسم النافذة\"" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "اسرد مساحات العمل في الشاشة (صيغة الخرج: \"الرقم: اسم مساحة العمل\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "غيّر رقم مساحات العمل في الشاشة إلى الرقم" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "غيّر مخطط مساحة العمل في الشاشة لاستخدام صفوف الأرقام" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "غيّر مخطط مساحة العمل في الشاشة لاستخدام أعمدة الأرقام" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "أظهر سطح المكتب" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "لا تظهر سطح المكتب" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "انقل منفذ العرض لمساحة العمل الحالية إلى س إحداثية س" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "س" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "انقل منفذ العرض لمساحة العمل الحالية إلى ص إحداثية ص" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "ص" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "صغّر النافذة" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "اعكس تصغير النافذة" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "كبّر النافذة" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "اعكس تكبير النافذة" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "كبّر النافذة أفقيًا" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "اعكس تكبير النافذة أفقيًا" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "كبّر النافذة عموديًا" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "اعكس تكبير النافذة عموديًا" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "ابدأ بتحريك النافذة عن طريق لوحة المفاتيح" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "ابدأ بتحجيم النافذة عن طريق لوحة المفاتيح" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "نشّط النافذة" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "أغلق النافذة" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "اجعل النافذة ملء الشاشة" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "اجعل النافذة تخرج من نمط ملء الشاشة" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "اجعل النافذة في الأعلى دائمًا" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "اجعل النافذة ليست في الأعلى دائمًا" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "اجعل النافذة أسفل بقية النوافذ" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "اجعل النافذة ليست في أسفل بقية النوافذ" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "ظلّل النافذة" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "اعكس تظليل النافذة" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "اجعل للنافذة موقعًا ثابتًا في منفذ العرض" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "لا تجعل للنافذة موقعًا ثابتًا في منفذ العرض" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "اجعل النافذة لا تظهر في مبدّل المساحات" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "اجعل النافذة تظهر في مبدّل المساحات" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "اجعل النافذة لا تظهر في قائمة المهمات" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "اجعل النافذة تظهر في قائمة المهمات" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "أظهر النافذة في جميع مساحات العمل" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "اجعل النافذة مرئية في مساحة العمل الحالية فقط" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "انقل النافذة إلى مساحة العمل رقم (مساحة العمل الأولى رقمها 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "غيّر الإحداثية س الخاصة بالنافذة إلى س" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "غيّر الإحداثية ص الخاصة بالنافذة إلى ص" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "غيّر عرض النافذة إلى العرض" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "العرض" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "غيّر ارتفاع النافذة إلى الارتفاع" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "الارتفاع" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"غيّر نوع النافذة إلى النوع (القيم الصالحة هي: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "النوع" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "غيّر اسم مساحة العمل إلى الاسم" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "الاسم" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "نشّط مساحة العمل" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "القيمة \"%s\" غير صالحة ل‍ --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"هناك خيارات متضاربة: الشاشة %Id يجب أن يُتفاعل معها، ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"هناك خيارات متضاربة: النوافذ أو مساحات العمل في الشاشة %Id ينبغي أن تُسرد، " +"ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"هناك خيارات متضاربة: مساحة العمل %Id يجب أن يُتفاعل معها، ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"هناك خيارات متضاربة: نوافذ مساحة العمل %Id ينبغي أن تُسرد، ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "هناك خيارات متضاربة: يجب أن يُتفاعل مع تطبيق، ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "هناك خيارات متضاربة: نافذة تطبيق يجب أن تُسرد، ولكن --%s استُخدمت\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"هناك خيارات متضاربة: مجموعة الفئات \"%s\" يجب أن يُتفاعل معها، ولكن --%s " +"استُخدمت\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"هناك خيارات متضاربة: نوافذ مجموعة الفئات \"%s\" يجب أن يُتفاعل معها، ولكن --%" +"s استُخدمت\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "هناك خيارات متضاربة: يجب أن يُتفاعل مع نافذة، ولكن --%s استُخدمت\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "هناك خيارات متضاربة: --%s و --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"المعطى \"%Id\" غير صالح ل‍ --%s: المعطى يجب أن يكون رقمًا إيجابيًا غير الصفر\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "المعطى \"%Id\" غير صالح ل‍ --%s: المعطى يجب أن يكون رقمًا إيجابيًا\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "هناك خيارات متضاربة: --%s أو --%s، و --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "المعطى \"%s\" غير صالح ل‍ --%s، القيم الصالحة هي: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "لا يمكن تغيير مخطط مساحة العمل على الشاشة: المخطط مملوك مسبقًا\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "لا يمكن تحريك منفذ العرض: مساحة العمل الحالية لا تحوي منفذ عرض\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "لا يمكن تحريك منفذ العرض: ليس هناك مساحة عمل حالية\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "الإجراء غير مسموح\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "لا يمكن نقل النافذة إلى مساحة العمل %Id: مساحة العمل غير موجودة\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "<الاسم غير معيّن>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "‏%lu:‏ %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "‏%Id:‏ %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "رقم الشاشة: %Id\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "الهندسة (العرض، الارتفاع): %Id, %Id\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "عدد مساحات العمل: %Id\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "مخطط مساحة العمل (الصفوف، الأعمدة، الاتجاه): %Id، %Id، %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "<لا مدير نوافذ ملتزم ب‍ EWMH>" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "مدير النوافذ: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1445 +#, c-format +msgid "%d (\"%s\")" +msgstr "‏%Id ‏(\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "لا شيء" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "مساحة العمل النشطة: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "‏\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "‏%lu ‏(%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "لا شيء" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "النافذة النشطة: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "إظهار سطح المكتب: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "صحيح" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "خطأ" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "اسم مساحة العمل: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "رقم مساحة العمل: %Id\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1461 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "على الشاشة %Id (مدير النوافذ: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "<لا منفذ عرض>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "موقع منفذ العرض (س، ص): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "الموقع في المخطط (صف، عمود): %Id، %Id\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "الجار الأيسر: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "الجار الأيمن: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "الجار الأعلى: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "الجار الأسفل: %s\n" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1350 +#, c-format +msgid "Resource Class: %s\n" +msgstr "فئة الموارد: %s\n" + +#: ../libwnck/wnckprop.c:1352 +#, c-format +msgid "Group Name: %s\n" +msgstr "اسم المجموعة: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "ضُبط" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "<غير مضبوط>" + +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +#, c-format +msgid "Icons: %s\n" +msgstr "الأيقونات: %s\n" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1403 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "عدد النوافذ: %Id\n" + +#: ../libwnck/wnckprop.c:1377 ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Name: %s\n" +msgstr "الاسم: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1378 ../libwnck/wnckprop.c:1432 +#, c-format +msgid "Icon Name: %s\n" +msgstr "اسم الأيقونة: %s\n" + +#: ../libwnck/wnckprop.c:1393 ../libwnck/wnckprop.c:1516 +#, c-format +msgid "PID: %s\n" +msgstr "معرّف العملية: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "لا شيء" + +#: ../libwnck/wnckprop.c:1401 +#, c-format +msgid "Startup ID: %s\n" +msgstr "معرّف بدء التشغيل: %s\n" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "كل مساحات العمل" + +#: ../libwnck/wnckprop.c:1453 +#, c-format +msgid "On Workspace: %s\n" +msgstr "على مساحة العمل %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "نافذة عادية" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "سطح مكتب" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "رصيف أو لوح" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "نافذة حوار" + +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "شريط أدوات متحرك" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "قائمة متحركة" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "نافذة أدوات" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "شاشة البداية" + +#: ../libwnck/wnckprop.c:1494 +#, c-format +msgid "Window Type: %s\n" +msgstr "نوع النافذة: %s\n" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "الهندسة (س، ص، عرض، ارتفاع): %Id، %Id، %Id، %Id\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1507 +#, c-format +msgid "Class Group: %s\n" +msgstr "مجموعة الفئات: %s\n" + +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "XID: %lu\n" +msgstr "معرّف إكس: %lu\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "Session ID: %s\n" +msgstr "معرّف الجلسة: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "قائد المجموعة: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Transient for: %lu\n" +msgstr "عابرة فوق: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1552 ../libwnck/wnckprop.c:1600 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr "، " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "مصغّرة" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "مكبّرة" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "مكبّرة أفقيًا" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "مكبّرة رأسيًا" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "مظللة" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "مثبتة" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "ملصقة" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "فوق" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "تحت" + +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "تملأ الشاشة" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "تتطلب انتباهًا" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "تجاوز عن مبدّل مساحات العمل" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "تجاوز عن قائمة المهمات" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "عادية" + +#: ../libwnck/wnckprop.c:1588 +#, c-format +msgid "State: %s\n" +msgstr "الحالة: %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "انقل" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "حجّم" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "ظلّل" + +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "اعكس التظليل" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "الصق" + +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "اعكس الإلصاق" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "كبّر أفقيًا" + +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "اعكس التكبير أفقيًا" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "كبّر رأسيًا" + +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "اعكس التكبير رأسيًا" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "غيّر مساحة العمل" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "ثبّت" + +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "اعكس التثبيت" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "صغّر" + +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "اعكس التصغير" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "كبّر" + +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "اعكس التكبير" + +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "غيّر نمط ملء الشاشة" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "أغلق" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "انقل إلى الأعلى" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "اعكس النقل إلى الأعلى" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "انقل إلى الأسفل" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "اعكس النقل إلى الأسفل" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "لا يوجد إجراء ممكن" + +#: ../libwnck/wnckprop.c:1647 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "الإجراءات الممكنة: %s\n" + +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"اطبع أو عدّل خصائص شاة/مساحة عمل/نافذة، أو تفاعل معها، متبعًا مواصفات EWMH.\n" +"لمعلومات حول هذه المواصفات، راجع:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "أظهر النوافذ من كل مساحات العمل" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "أظهر الخيارات لسرد النوافذ أو مساحات العمل" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "الخيارات لتعديل خصائص نافذة" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "أظهر الخيارات لتعديل خصائص نافذة" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "الخيارات لتعديل خصائص مساحة عمل" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "أظهر الخيارات لتعديل خصائص مساحة عمل" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "الخيارات لتعديل خصائص شاشة" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "أظهر الخيارات لتعديل خصائص شاشة" + +#: ../libwnck/wnckprop.c:1872 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "خطأ أثناء تحليل المعطيات: %s\n" + +#: ../libwnck/wnckprop.c:1895 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "لا يمكن التفاعل مع الشاشة %Id: الشاشة غير موجودة\n" + +#: ../libwnck/wnckprop.c:1951 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "لا يمكن التفاعل مع مساحة العمل %Id: مساحة العمل لا يمكن إيجادها\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1975 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"لا يمكن التفاعل مع مجموعة الفئات \"%s\": مجموعة الفئات لا يمكن إيجادها\n" + +#: ../libwnck/wnckprop.c:1998 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"لا يمكن التفاعل مع تطبيق يملك قائد مجموعة له معرّف إكس %lu: لا يمكن إيجاد " +"التطبيق\n" + +#: ../libwnck/wnckprop.c:2021 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "لا يمكن التفاعل مع نافذة لها معرّف إكس %lu: لا يمكن إيجاد النافذة\n" + +#~ msgid "workspace|none" +#~ msgstr "غير محدّد" + +#~ msgid "window|none" +#~ msgstr "غير محدّد" + +#~ msgid "startupID|none" +#~ msgstr "غير محدّد" diff --git a/po/as.gmo b/po/as.gmo new file mode 100644 index 0000000..6106830 Binary files /dev/null and b/po/as.gmo differ diff --git a/po/as.po b/po/as.po new file mode 100644 index 0000000..24d9533 --- /dev/null +++ b/po/as.po @@ -0,0 +1,1312 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Amitakhya Phukan , 2009. +# Nilamdyuti Goswami , 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: as\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-03-15 20:38+0530\n" +"Last-Translator: Nilamdyuti Goswami \n" +"Language-Team: Assamese \n" +"Language: as\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "শীৰ্ষকবিহিন এপ্লিকেচন" + +# +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "কৰ্মক্ষেত্ৰ অদলবদলকাৰী" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "কৰ্মক্ষেত্ৰ পৰিবৰ্তনৰ বাবে ব্যবহৃত সঁজুলি" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "কৰ্মক্ষেত্ৰ %s লৈ পৰিবৰ্তন কৰিবলৈ এই স্থানত ক্লিক কৰক" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" লৈ ক্লিক কৰক টনাৰ বাবে" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "বৰ্তমান কৰ্মক্ষেত্ৰত: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "%s লৈ পৰিবৰ্তন কৰিবলৈ এই স্থানত ক্লিক কৰক" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "কোনো উইন্ডো বৰ্তমান খোলা নাই" + +# +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "উইণ্ডো নিৰ্বাচক" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "উইন্ডো পৰিবৰ্তন কৰিবলৈ ব্যবহৃত সঁজুলি" + +# +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "উইণ্ডো তালিকা" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "দৃশ্যমান উইন্ডো পৰিবৰ্তন কৰিবলৈ ব্যবহৃত সঁজুলি" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "সকলো লুকাওক (_n)" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "সকলো প্ৰদৰ্শন কৰক (_m)" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "সকলো ডাঙৰ কৰক (_x)" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "সকলো স্বাভাবিক মাপে প্ৰদৰ্শন কৰক (_U)" + +# +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "সকলো বন্ধ কৰক (_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "ডাঙৰ কৰক (_n)" + +# +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "লুকাওক (_n)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "স্বাভাবিক কৰক (_x)" + +# +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "ডাঙৰ কৰক (_x)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "কৰ্মক্ষেত্ৰ %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "কৰ্মক্ষেত্ৰ ১০ (_0)" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "কৰ্মক্ষেত্ৰ %s%d" + +# +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "স্থানান্তৰ কৰক (_M)" + +# +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "পুনৰ আকাৰ দিয়ক (_R)" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "সদায়ে ওপৰত (_T)" + +# +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "দৃশ্যমান কৰ্মক্ষেত্ৰত সদায়ে উপস্থিত (_A)" + +# +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "কেৱল বৰ্তমান কৰ্মক্ষেত্ৰত (_O)" + +# +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "বাওঁফালৰ কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (_L)" + +# +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "সোঁফালৰ কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (_i)" + +# +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "ওপৰৰ কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (_U)" + +# +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "তলৰ কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (_D)" + +# +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "অন্য কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (_W)" + +# +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "বন্ধ কৰক (_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "শীৰ্ষকবিহিন উইন্ডো" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "পৰীক্ষা অথবা পৰিবৰ্তনৰ বাবে চিহ্নিত উইন্ডোৰ X উইন্ডো ID" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "যি এপ্লিকেচন পৰীক্ষা কৰা হ'ব তাৰ দল প্ৰমূখৰ X উইন্ডো ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "যি শ্ৰেণী দল পৰীক্ষা কৰা হ'ব তাৰ শ্ৰেণী সম্পদ" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "পৰীক্ষা অথবা পৰিবৰ্তনৰ বাবে চিহ্নিত কৰ্মক্ষেত্ৰৰ NUMBER" + +# +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "সংখ্যা" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "পৰীক্ষা অথবা পৰিবৰ্তনৰ বাবে চিহ্নিত পৰ্দাৰ NUMBER" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window ৰ এলিয়াচ" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"এপ্লিকেচন/শ্ৰেণী দল/কৰ্মক্ষেত্ৰ/পৰ্দাৰ উইন্ডোসমূহ তালিকাভুক্ত কৰক (ফলাফলৰ " +"বিন্যাস: " +"\"XID: উইন্ডোৰ নাম\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"পৰ্দাৰ কৰ্মক্ষেত্ৰসমূহ তালিকাভুক্ত কৰক (ফলাফলৰ বিন্যাস: \"সংখ্যা: " +"কৰ্মক্ষেত্ৰৰ নাম\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "পৰ্দাৰ কৰ্মক্ষেত্ৰৰ সংখ্যাক NUMBER লে পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "পৰ্দাৰ কৰ্মক্ষেত্ৰৰ বিন্যাসক NUMBER শাৰী ব্যবহাৰ কৰিবলৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "পৰ্দাৰ কৰ্মক্ষেত্ৰৰ বিন্যাসক NUMBER স্তম্ভ ব্যবহাৰ কৰিবলৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "ডেস্কটপ প্ৰদৰ্শন কৰক" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "ডেস্কটপ প্ৰদৰ্শন বন্ধ কৰক" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "বৰ্তমান কৰ্মক্ষেত্ৰৰ দৃষ্টিপৰ্টক X অক্ষ X ত স্থানান্তৰ কৰক" + +# +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "বৰ্তমান কৰ্মক্ষেত্ৰৰ দৃষ্টিপৰ্টক Y অক্ষ Y ত স্থানান্তৰ কৰক" + +# +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "উইন্ডো লুকাওক" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "উইন্ডো ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "উইন্ডো ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "উইন্ডো সৰু কৰক" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "উইন্ডোক আনুভূমিকভাৱে ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "উইন্ডোক আনুভূমিকভাৱে ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "উইন্ডোক উল্লম্বভাৱে ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "উইন্ডোক উল্লম্বভাৱে সৰু কৰক" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "কিবৰ্ডৰ মাধ্যমে উইন্ডো স্থানান্তৰ কৰা আৰম্ভ কৰক" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "কিবৰ্ডৰ মাধ্যমে উইন্ডোৰ মাপ পৰিবৰ্তন আৰম্ভ কৰক" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "উইন্ডো সক্ৰিয় কৰক" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "উইন্ডো বন্ধ কৰক" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "উইন্ডোক পূৰ্ণপৰ্দা কৰক" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "উইন্ডোৰ পূৰ্ণপৰ্দা অৱস্থা প্ৰস্থান কৰাওক" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "উইন্ডোক সদায়ে ওপৰত ৰাখক" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "উইন্ডোক সদায়ে ওপৰত নাৰাখিব" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "উইন্ডোক অন্য উইন্ডোৰ তলত ৰাখক" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "উইন্ডোক অন্য উইন্ডোৰ তলত নাৰাখিব" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "উইন্ডোক ছায়াবৃত কৰক" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "উইন্ডো পৰা ছায়া আতৰাওক" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "উইন্ডোক দৃষ্টিপৰ্টত এটা নিৰ্দিষ্ট স্থানত ৰাখক" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "উইন্ডোক দৃষ্টিপৰ্টত কোন নিৰ্দিষ্ট স্থানত নাৰাখিব" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "উইন্ডোক পেজাৰত প্ৰদৰ্শন নকৰিব" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "উইন্ডোক পেজাৰত প্ৰদৰ্শন কৰক" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "উইন্ডোক কাৰ্য্যতালিকাত উপস্থিত নকৰিব" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "কাৰ্য্যতালিকাত উইন্ডো প্ৰদৰ্শন কৰক" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "উইন্ডোক সকলো কৰ্মক্ষেত্ৰত প্ৰদৰ্শন কৰক" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "উইন্ডোক কেৱল বৰ্তমান কৰ্মক্ষেত্ৰত প্ৰদৰ্শন কৰা হ'ব" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "উইন্ডোক NUMBER কৰ্মক্ষেত্ৰত স্থানান্তৰ কৰক (প্ৰথম কৰ্মক্ষেত্ৰ 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "উইন্ডোক X অক্ষ X লৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "উইন্ডোক Y অক্ষ Y লৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "উইন্ডোৰ প্ৰস্থ WIDTH লৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "উইন্ডোৰ উচ্চতা HEIGHT লৈ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"উইন্ডোৰ ধৰণক TYPE লে পৰিবৰ্তন কৰক (বিধিসন্মত মান: স্বাভাৱিক, ডেস্কটপ, ডক, " +"ডাইলগ, " +"টুলবাৰ, মেনু, সঁজুলি, স্প্লেশ)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "কৰ্মক্ষেত্ৰৰ নাম NAME লে পৰিবৰ্তন কৰক" + +# +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "নাম" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "কৰ্মক্ষেত্ৰ সক্ৰিয় কৰক" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "অবৈধ মান \"%s\", --%sৰ বাবে" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: পৰ্দা %d ৰ সৈতে ভাৱবিনিময় হোৱা উচিত কিন্তু " +"--%s " +"ব্যবহৃত হৈছে\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: পৰ্দা %d ৰ উইন্ডো অথবা কৰ্মক্ষেত্ৰ ব্যবহাৰ " +"কৰা উচিত, " +"কিন্তু --%s ব্যবহাৰ কৰা হৈছে\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: কৰ্মক্ষেত্ৰ %d ৰ সৈতে ভাৱবিনিময় হোৱা উচিত " +"কিন্তু --%s " +"ব্যবহৃত হৈছে\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: কৰ্মক্ষেত্ৰ %d ৰ উইন্ডোসমূহ তালিকাভুক্ত " +"হোৱা উচিত কিন্তু --" +"%s ব্যবহৃত হৈছে\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: এটা এপ্লিকেচনৰ সৈতে ভাৱবিনিময় হোৱা উচিত " +"কিন্তু --%s " +"ব্যবহৃত হৈছে\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: এটা এপ্লিকেচনৰ উইন্ডোসমূহ তালিকাভুক্ত হোৱা " +"উচিত কিন্তু --" +"%s ইতিমধ্যে ব্যবহৃত হৈছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: \"%s\" শ্ৰেণী দল ৰ সৈতে ভাৱবিনিময় হোৱা উচিত " +"কিন্তু --" +"%s ইতিমধ্যে ব্যবহৃত হৈছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: \"%s\" শ্ৰেণী দলৰ উইন্ডোসমূহ তালিকাভুক্ত " +"হোৱা উচিত " +"কিন্তু --%sব্যবহৃত হৈছে\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত আছে: উইন্ডোৰ সৈতে ভাৱবিনিময় হোৱা উচিত কিন্তু --%" +"s ব্যবহৃত " +"হৈছে\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "দ্বন্দ্বযুক্ত বিকল্প উপস্থিত: --%s আৰু --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "অবৈধ তৰ্ক \"%d\", --%s ৰ বাবে : তৰ্ক ধনাত্মক হব লাগিব\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "অবৈধ তৰ্ক \"%d\", --%s ৰ বাবে : তৰ্ক ধনাত্মক হব লাগিব\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "দ্বন্দ্বযুক্ত বিকল্প উপস্থিত: --%s অথবা --%s, আৰু --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "--%s ৰ বাবে অবৈধ তৰ্ক \"%s\", বৈধ মান হল: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"পৰ্দাত কৰ্মক্ষেত্ৰৰ বিন্যাস পৰিবৰ্তন কৰিব নোৱাৰি: বিন্যাস পূৰ্বে ব্যবহৃত " +"হৈছে\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"দৃষ্টিপৰ্ট স্থানান্তৰ কৰিব নোৱাৰি: বৰ্তমান কৰ্মক্ষেত্ৰত এটা দৃষ্টিপৰ্ট নাই \n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "দৃষ্টিপৰ্ট স্থানান্তৰ কৰিব নোৱাৰি: বৰ্তমান কোন কৰ্মক্ষেত্ৰ নাই\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "কাৰ্য্যৰ অনুমতি নাই\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"উইন্ডো কৰ্মক্ষেত্ৰ %d লে স্থানান্তৰ কৰিব নোৱাৰি: কৰ্মক্ষেত্ৰ উপস্থিত নহয়\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "পৰ্দা সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "জ্যামিতি (প্ৰস্থ, উচ্চতা): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "কৰ্মক্ষেত্ৰৰ সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "কৰ্মক্ষেত্ৰৰ বিন্যাস (শাৰী, স্তম্ভ, দিশ): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "উইন্ডো ব্যৱস্থাপক: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +# +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "এটাও নাই" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "সক্ৰিয় কৰ্মক্ষেত্ৰ: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +# +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "এটাও নাই" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "সক্ৰিয় উইন্ডো: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ডেস্কটপ দেখুৱাওক: %s\n" + +# +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "সঁচা" + +# +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "মিছা" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "কৰ্মক্ষেত্ৰৰ নাম: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "কৰ্মক্ষেত্ৰ সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "পৰ্দাৰ উপৰ: %d (উইন্ডো ব্যৱস্থাপক: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "দৃষ্টিপৰ্ট অবস্থান (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "বিন্যাসত অবস্থান (শাৰী, স্তম্ভ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "বাঁওফালৰ প্ৰতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "সোঁফালৰৰ প্ৰতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "ওপৰৰ প্ৰতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "তলৰ প্ৰতিবেশি: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "শ্ৰেণী দল ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "শ্ৰেণী দল নাম: %s\n" + +# +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "সংহতি কৰক" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "আইকন: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "উইন্ডোৰ সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "নাম: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "আইকনৰ নাম: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +# +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "এটাও নাই" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "প্ৰাৰম্ভিক ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "সকলো কৰ্মক্ষেত্ৰ" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "চিহ্নিত কৰ্মক্ষেত্ৰত: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "স্বাভাবিক উইন্ডো" + +# +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "ডেস্কটপ" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "ডক অথবা পেনেল" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "ডাইলগ উইন্ডো" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "টিয়াৰ'ফ টুলবাৰ" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "টিয়াৰ'ফ মেনু" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "সঁজুলি উইন্ডো" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "স্প্লেশ পৰ্দা" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "উইন্ডোৰ ধৰণ: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "জ্যামিতি (x, y, প্ৰস্থ, উচ্চতা): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "শ্ৰেণী উদাহৰণ: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "অধিবেশন ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "ভূমিকা: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "দল প্ৰমূখ: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "চিহ্নিতৰ বাবে ক্ষণস্থায়ী: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "সৰু কৰা" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "ডাঙৰ কৰা" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "আনুভূমিকভাৱে ডাঙৰ কৰা" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "উলম্বভাৱে ডাঙৰ কৰা" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "ছায়াবৃত" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "পিন কৰা" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "স্টিকি" + +# +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "ওপৰত" + +# +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "তলত" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "পূৰ্ণপৰ্দা" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "মনোযোগ আৱশ্যক" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "পেজাৰ উপেক্ষা কৰক" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "কাৰ্য্যতালিকা উপেক্ষা কৰক" + +# +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "স্বাভাবিক" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "অবস্থা: %s\n" + +# +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "স্থানান্তৰ কৰক" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "পুনৰ আকাৰ দিয়ক" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "ছায়াবৃত" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "ছায়া আতৰাওক" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "স্টিক কৰক" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "আনস্টিক কৰক" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "আনুভূমিকভাৱে ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "আনুভূমিকভাৱে সৰু কৰক" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "উলম্বভাৱে ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "উলম্বভাৱে সৰু কৰক" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "কৰ্মক্ষেত্ৰ পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "পিন কৰক" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "আনপিন কৰক" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "সৰু কৰক" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "ডাঙৰ কৰক" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "সৰু কৰক " + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "পূৰ্ণপৰ্দা অৱস্থা পৰিবৰ্তন কৰক" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "বন্ধ কৰক" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "ওপৰত নিৰ্মাণ কৰক" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "ওপৰত নিৰ্মাণ নকৰিব" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "তলত নিৰ্মাণ কৰক" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "তলত নিৰ্মাণ নকৰিব" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "কোনো কাৰ্য্য সম্ভব নয়" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "সম্ভাব্য কাৰ্য্য: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"EWMH ৰ নিৰ্দেশাবলী অনুযায়ী পৰ্দা/কৰ্মক্ষেত্ৰত/উইন্ডোৰ বৈশিষ্ট্য প্ৰিন্ট অথবা " +"পৰিবৰ্তন " +"কৰক অথবা ইয়াৰ সৈতে ভাৱবিনিময় কৰক।\n" +"এই নিৰ্দেশাবলী সম্পৰ্কে অধিক বিবৰণ জানিবলে চাওক:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "উইন্ডো অথবা কৰ্মক্ষেত্ৰৰ তালিকা প্ৰদৰ্শনৰ বিকল্প" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "উইন্ডো অথবা কৰ্মক্ষেত্ৰৰ তালিকা প্ৰদৰ্শনৰ বিকল্প দেখুৱাওক" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "এটা উইন্ডোৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "এটা উইন্ডোৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ দেখুৱাওক" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "এটা কৰ্মক্ষেত্ৰৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "এটা কৰ্মক্ষেত্ৰৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ দেখুৱাওক" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "এটা পৰ্দাৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "এটা পৰ্দাৰ বৈশিষ্ট্যসমূহ পৰিবৰ্তন কৰিবলে বিকল্পসমূহ দেখুৱাওক" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "তৰ্কসমূহ বিশ্লেষণ কৰিবলৈ ত্ৰুটি: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "পৰ্দা %d ৰ সৈতে ভাৱবিনিময় কৰিব নোৱাৰি: এই পৰ্দা উপস্থিত নাই\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"কৰ্মক্ষেত্ৰ %d ৰ সৈতে ভাৱবিনিময় কৰিব নোৱাৰি: এই কৰ্মক্ষেত্ৰ উপস্থিত নাই\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"শ্ৰেণী দল \"%s\"ৰ সৈতে ভাৱবিনিময় কৰিবলৈ ব্যৰ্থ: এই শ্ৰেণী দল উপস্থিত নাই\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu ৰ সৈতে দল প্ৰমূখ থকা এপ্লিকেচনৰ সৈতে ভাৱবিনিময় কৰিব নোৱাৰি: এপ্লিকেচন " +"পোৱা নাযায়\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu থকা উইন্ডোৰ সৈতে ভাৱবিনিময় কৰিব নোৱাৰি: উইন্ডো পোৱা নাযায়\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "NROWS শাৰী ব্যবহাৰ কৰা হ'ব (_R)" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "কেৱল বৰ্তমান কৰ্মক্ষেত্ৰ প্ৰদৰ্শন কৰা হ'ব" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Use RTL as default direction" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "কৰ্মক্ষেত্ৰৰ বিষয়বস্তুৰ পৰিবৰ্তে কৰ্মক্ষেত্ৰৰ নাম প্ৰদৰ্শন কৰা হ'ব" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Use a vertical orientation" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "কৰ্মতালিকায় উইন্ডো প্ৰদৰ্শন কৰা ন'হ'ব" + +#~ msgid "Always group windows" +#~ msgstr "সকলোসময় উইন্ডোসমূহ দলভুক্ত্ৰ কৰক" + +#~ msgid "Never group windows" +#~ msgstr "উইন্ডো কেতিয়াও দলভুক্ত কৰা ন'হ'ব" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "সকলো কৰ্মক্ষেত্ৰৰ উইন্ডো প্ৰদৰ্শন কৰা হ'ব" + +#~ msgid "Enable Transparency" +#~ msgstr "স্বচ্ছ প্ৰদৰ্শন সক্ৰিয় কৰা হ'ব" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "সম্পদৰ শ্ৰেণী: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "দলৰ নাম: %s\n" diff --git a/po/ast.gmo b/po/ast.gmo new file mode 100644 index 0000000..2cd6df0 Binary files /dev/null and b/po/ast.gmo differ diff --git a/po/ast.po b/po/ast.po new file mode 100644 index 0000000..d91ea2d --- /dev/null +++ b/po/ast.po @@ -0,0 +1,1244 @@ +# Asturian translation for libwnck. +# Copyright (C) 2010 libwnck's COPYRIGHT HOLDER +# This file is distributed under the same license as the libwnck package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&component=general\n" +"POT-Creation-Date: 2009-12-05 13:06+0000\n" +"PO-Revision-Date: 2010-01-06 18:22+0100\n" +"Last-Translator: astur \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: asturian\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplicación ensin títulu" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "Intercambiador d'Espaciu de Trabayu" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "Erbía pa camudar l'espaciu de trabayu" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Calca esto pa camudar al espaciu d'trabayu %s" + +#: ../libwnck/pager.c:1910 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Calque pa entamar a arrastrar «%s»" + +#: ../libwnck/pager.c:1913 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Espaciu de trabayu actual: \"%s\"" + +#: ../libwnck/pager.c:1918 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Calque pa camudar al «%s»" + +#: ../libwnck/selector.c:1172 +msgid "No Windows Open" +msgstr "Ensin Ventanes Abiertes" + +#: ../libwnck/selector.c:1225 +msgid "Window Selector" +msgstr "Seleutor de ventanes" + +#: ../libwnck/selector.c:1226 +msgid "Tool to switch between windows" +msgstr "Ferramienta pa camudar ente ventanes" + +#: ../libwnck/tasklist.c:729 +msgid "Window List" +msgstr "Llista de Ventana" + +#: ../libwnck/tasklist.c:730 +msgid "Tool to switch between visible windows" +msgstr "Ferramienta pa camudar ente ventanes visibles" + +#: ../libwnck/tasklist.c:3022 +msgid "Mi_nimize All" +msgstr "Minimizar _Too" + +#: ../libwnck/tasklist.c:3033 +msgid "Un_minimize All" +msgstr "Des_minimizar too" + +#: ../libwnck/tasklist.c:3041 +msgid "Ma_ximize All" +msgstr "Ma_ximizar too" + +#: ../libwnck/tasklist.c:3052 +msgid "_Unmaximize All" +msgstr "Des_maximizar too" + +#: ../libwnck/tasklist.c:3064 +msgid "_Close All" +msgstr "_Zarrar Too" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "Usar columnes N_COLUMNES" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "N_COLUMNES" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "Namái amosar esti espaciu de trabayu" + +#: ../libwnck/test-pager.c:17 +#: ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "Usar la direición D-->I como predeterminada" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "Amosar los nomes de les árees de trabayu n'arróu del conteníu" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "Usar orientación vertical" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/test-selector.c:13 +#: ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "Non amosar una ventana na llista de xeres" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "Siempre agrupar ventanes" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "Non agrupar ventanes" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "Amosar les ventanes de toles árees de trabayu" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "Activar tresparencia" + +#: ../libwnck/window-action-menu.c:417 +msgid "Unmi_nimize" +msgstr "Desminimi_zar" + +#: ../libwnck/window-action-menu.c:424 +msgid "Mi_nimize" +msgstr "Mi_nimizar" + +#: ../libwnck/window-action-menu.c:432 +msgid "Unma_ximize" +msgstr "Desma_ximizar" + +#: ../libwnck/window-action-menu.c:439 +msgid "Ma_ximize" +msgstr "Ma_ximizar" + +#: ../libwnck/window-action-menu.c:746 +#: ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Espaciu de Trabayu %d" + +#: ../libwnck/window-action-menu.c:755 +#: ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace 1_0" +msgstr "Espaciu de Trabayu 1_0" + +#: ../libwnck/window-action-menu.c:757 +#: ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace %s%d" +msgstr "Espaciu de Trabayu %s%d" + +#: ../libwnck/window-action-menu.c:1047 +msgid "_Move" +msgstr "_Mover" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Resize" +msgstr "_Redimensionar" + +#: ../libwnck/window-action-menu.c:1063 +msgid "Always On _Top" +msgstr "Siempre _enriba" + +#: ../libwnck/window-action-menu.c:1071 +msgid "_Always on Visible Workspace" +msgstr "Siempre Visible nel Esp_aciu de Trabayu" + +#: ../libwnck/window-action-menu.c:1076 +msgid "_Only on This Workspace" +msgstr "Sól_o nesti Espaciu de Trabayu" + +#: ../libwnck/window-action-menu.c:1083 +msgid "Move to Workspace _Left" +msgstr "Mover al Espaciu de Trabayu E_squierdu" + +#: ../libwnck/window-action-menu.c:1089 +msgid "Move to Workspace R_ight" +msgstr "Mover al Espaciu de Trabayu _Drechu" + +#: ../libwnck/window-action-menu.c:1095 +msgid "Move to Workspace _Up" +msgstr "Mover al Espaciu de Trabayu S_uperior" + +#: ../libwnck/window-action-menu.c:1101 +msgid "Move to Workspace _Down" +msgstr "Mover al Espaciu de Trabayu In_ferior" + +#: ../libwnck/window-action-menu.c:1104 +msgid "Move to Another _Workspace" +msgstr "Mover a Otru Espaciu de Traba_yu" + +#: ../libwnck/window-action-menu.c:1124 +msgid "_Close" +msgstr "_Zarrar" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Ventana ensin títulu" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X window de la ventana a desaminar o modificar" + +#: ../libwnck/wnckprop.c:139 +#: ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ID X window del líder del grupo de ventanas de una aplicación a examinar" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Recursu del grupu de clas a desaminar" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLAS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÜMBERU de l'espaciu de trabayu a examinar o camudar" + +#: ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 +#: ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NÚMBERU" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÚMBERU de la pantalla a desaminar o modificar" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Nomate de --ventana" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "Llistar les ventanes de l'aplicación/grupu de clas/área de trabayu/pantalla (formatu de salida: «XID: nome de la ventana»)" + +#: ../libwnck/wnckprop.c:166 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "Llistar les árees de trabayu de la pantalla (formatu de salida: «Númberu: nome del área de trabayu»)" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Camudar el númberu d'espacios de trabayu de la pantalla a NÚMBERU" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Camudar la disposición del área de trabayu de la pantalla pa que use NÚMBERU fileres" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Camudar la disposición del área de trabayu de la pantalla pa que use NÚMBERU columnes" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Amosar l'escritoriu" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Tapecer l'escritoriu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Mover el puertu de vista del área de trabayu actual a X coordenada X" + +#: ../libwnck/wnckprop.c:185 +#: ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Mover el puertu de vista del área de trabayu actual a Y coordenada Y" + +#: ../libwnck/wnckprop.c:190 +#: ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimizar la ventana" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Desminimizar la ventana" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maximizar la ventana" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Desmaximizar la ventana" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maximizar horizontalmente la ventana" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Desmaximizar horizontalmente la ventana" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maximizar verticalmente la ventana" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Desmaximizar verticalmente la ventana" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Entamar a mover la ventana emplegado'l tecláu" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Entamar a redimensionar la ventana usando'l tecláu" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Activar la ventana" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Zarrar la ventana" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Poner la ventana a pantalla completa" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Facer que la ventana salga del mou a pantalla completa" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Facer que la ventana tea siempres enriba" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Facer que la ventana non siempres tea enriba" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Poner la ventana debaxo d'otres ventanes" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Nun poner la ventana debaxo d'otres ventanes" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Endolcar la ventana" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Desendolcar la ventana" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fixar la posición de la ventana nel puertu de vista" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Non fixar la posición de la ventana nel puertu de vista" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Non amosar la ventana nos paxinadores" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Amosar la ventana nos paxinadores" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Non amosar la ventana na llista de xeres" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Amosar la ventana na llista de xeres" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Amosar les ventanes de toles árees de trabayu" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Amosar la ventana namái nel área de trabayu actual" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Mover la ventana al área de trabayu NÚMBERU (el primer área de trabayu ye'l 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Camudar la coordenada X de la ventana a X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Camudar la coordenada Y de la ventana a Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Camudar l'anchor de la ventana al ANCHOR" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "ANCHU" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Camudar l'altor de la ventana al ALTOR" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ALTOR" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "Camudar el tipu de la ventana al TIPU (los valores válidos son: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TRIBA" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Camudar el nome del área de trabayu a NOME" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NOME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Activar l'área de trabayu" + +#: ../libwnck/wnckprop.c:384 +#: ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 +#: ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valor «%s» non válidu pa --%s" + +#: ../libwnck/wnckprop.c:501 +#: ../libwnck/wnckprop.c:520 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría d'interautuase cola pantalla %d pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría de llistase les ventanes o árees de trabayu de la pantalla %d pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:533 +#: ../libwnck/wnckprop.c:553 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría d'interautuase col área de trabayu %d pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría de llistase les ventanes del área de trabayu %d pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría d'interautuase con una aplicación pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría de llistase les ventaes d'una aplicación pero usóse --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría d'interautuase col grupu de clas «%s» pero usóse --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría de llistase les ventanes del grupu de clas «%s» pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:613 +#: ../libwnck/wnckprop.c:622 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "Esisten opciones en conflictu: tendría d'interautuase con una ventana pero usóse --%s\n" + +#: ../libwnck/wnckprop.c:641 +#: ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Esisten opciones en conflictu: --%s y --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "Argumentu «%d» non válidu pa --%s: l'argumentu tien de ser estrictamente positivu\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Argumentu «%d» non válidu pa --%s: los argumentos tienen de ser positivos\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Esisten opciones en conflictu: --%s o --%s, y --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argumentu «%s» non válidu pa --%s, los argumentos válidos son: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "Nun pue camudase la disposición del área de trabayu na pantalla: la disposición yá tien un propietariu\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "Nun pue movese'l puertu de visión: l'área de trabayu actual nun tien un puertu de visión\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Nun pue movese'l puertu de visión: nun hai área de trabayu actual\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 +#: ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 +#: ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 +#: ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 +#: ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Aición non permitía\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "La ventana nun pue movese al área de trabayu %d: l'área de trabayu nun esiste\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 +#: ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Pantalla númberu: %d\n" + +#: ../libwnck/wnckprop.c:1189 +#: ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Xeometría (anchor, altor): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Númberu d'estayes de trabayu: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Arranchamientu de la estaya de trabayu (files, columnes, orientación): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 +#: ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Xestor de ventanes: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 +#: ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 +#: ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 +#: ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 +#: ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 +#: ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "nengún" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Estaya de trabayu activa: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "nenguna" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Ventana activa: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Amuesando l'escritoriu: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "verdaderu" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "falsu" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nome de la estaya de trabayu: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Estaya de trabayu númberu: %d\n" + +#: ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1461 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Na pantalla: %d (Xestor de ventanes: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posición del puertu de vista (x,y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posición na distribución (fila, columna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Vecín izquierdu: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Vecín drechu: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Vecín cimeru: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Vecino baxeru: %s\n" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1350 +#, c-format +msgid "Resource Class: %s\n" +msgstr "Clase del recursu: %s\n" + +#: ../libwnck/wnckprop.c:1352 +#, c-format +msgid "Group Name: %s\n" +msgstr "Nome del grupu: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 +#: ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "establecer" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 +#: ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 +#: ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 +#: ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 +#: ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1362 +#: ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +#, c-format +msgid "Icons: %s\n" +msgstr "Iconos: %s\n" + +#: ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1403 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Númberu de ventanes: %d\n" + +#: ../libwnck/wnckprop.c:1377 +#: ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Name: %s\n" +msgstr "Nome: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1378 +#: ../libwnck/wnckprop.c:1432 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nome del iconu: %s\n" + +#: ../libwnck/wnckprop.c:1393 +#: ../libwnck/wnckprop.c:1516 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "nengún" + +#: ../libwnck/wnckprop.c:1401 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID d'arranque: %s\n" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "toles estayes de trabayu" + +#: ../libwnck/wnckprop.c:1453 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Na estaya de trabayu %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "ventana normal" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "escritoriu" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "empotrable o panel" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "ventana de diálogu" + +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "tirador de la barra de ferramientes" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "tirador del menú" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "ventana de utilidaes" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "pantalla de bienvenida" + +#: ../libwnck/wnckprop.c:1494 +#, c-format +msgid "Window Type: %s\n" +msgstr "Triba de ventana: %s\n" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Xeometría (x, y, anchor, altor): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1507 +#, c-format +msgid "Class Group: %s\n" +msgstr "Grupu de clase: %s\n" + +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID de sesión: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Cabezaleru del grupu: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transitoriu pa: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1552 +#: ../libwnck/wnckprop.c:1600 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 +#: ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "minimizada" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "maximizada" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "maximizada horizontalmente" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "maximizada verticalmente" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "endolcada" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "pinchada" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "pegañosa" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "enriba" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "abaxo" + +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "pantalla completa" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "necesita atención" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "saltar paxinador" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "saltar llista de xeres" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1588 +#, c-format +msgid "State: %s\n" +msgstr "Estáu: %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "mover" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "redimensionar" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "endolcar" + +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "desendolcar" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "apegar" + +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "desapegar" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "maximizar horizontalmente" + +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "desmaximizar horizontalmente" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "maximizar verticalmente" + +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "desmaximizar verticalmente" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "camudar estaya de trabayu" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "pinchar" + +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "despinchar" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "minimizar" + +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "desminimizar" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "maximizar" + +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "desmaximizar" + +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "cambiar mou a pantalla completa" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "zarrar" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "poner enriba" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "non poner enriba" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "poner debaxo" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "non poner debaxo" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "nun hai aiciones posibles" + +#: ../libwnck/wnckprop.c:1647 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Aiciones posibles: %s\n" + +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Imprentar o modificar les propiedaes d'una pantalla/área de trabayu/ventana o interautuar con una d'elles, siguiendo la especificación EWMH.\n" +"Pa obtener más información tocante a esta especificación vea:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "Opciones pa llistar les ventanes o les árees de trabayu" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "Amosar les opciones pa llistar les ventanes o les árees de trabayu" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "Opciones pa modificar les propiedaes d'una ventana" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "Amosar les opciones pa modificar les propiedaes d'una ventana" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "Opciones pa modificar les propiedaes d'un área de trabayu" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "Amosar les opciones pa modificar les propiedaes d'un área de trabayu" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "Opciones pa modificar les propiedaes d'una pantalla" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "Amosar les opciones pa modificar les propiedaes d'una pantalla" + +#: ../libwnck/wnckprop.c:1872 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Fallu al analizar los argumentos: %s\n" + +#: ../libwnck/wnckprop.c:1895 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Nun pue interautuase cola pantalla %d: la pantalla nun esiste\n" + +#: ../libwnck/wnckprop.c:1951 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Nun pue interautuase col área de trabayu %d: nun pue alcontrase'l área de trabayu\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1975 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Nun pue interautuase col grupu de clas «%s»: nun pue alcontrase'l grupu de clas\n" + +#: ../libwnck/wnckprop.c:1998 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "Nun pue interautuase cola aplicación cuyu líder de grupu tien el XID %lu: nun pue alcontrase l'aplicación\n" + +#: ../libwnck/wnckprop.c:2021 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Nun pue interautuase cola ventana de XID %lu: nun pue alcontrase la ventana\n" + diff --git a/po/az.gmo b/po/az.gmo new file mode 100644 index 0000000..a44e075 Binary files /dev/null and b/po/az.gmo differ diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..74ce9e7 --- /dev/null +++ b/po/az.po @@ -0,0 +1,152 @@ +# translation of libwnck.HEAD.az.po to Azerbaijani Turkish +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. +# Mətin Əmirov , 2003, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD.az\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-05 11:49+0200\n" +"PO-Revision-Date: 2004-02-01 21:16+0200\n" +"Last-Translator: Mətin Əmirov \n" +"Language-Team: Azerbaijani Turkish \n" +"Language: az\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.2\n" + +#: libwnck/application.c:26 +msgid "untitled application" +msgstr "adsız proqram" + +#: libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "İş Sahəsi Dəyişdiricisi" + +#: libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "İş sahələri arasında keçiş vasitəsi" + +#: libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "%s iş sahəsinə keçmək üçün buraya tıqlayın" + +#: libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "" + +#: libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "" + +#: libwnck/selector.c:747 +#, fuzzy +msgid "Window Selector" +msgstr "Pəncərə Siyahısı" + +#: libwnck/selector.c:748 +#, fuzzy +msgid "Tool to switch between windows" +msgstr "Pəncərələr arasında keçiş vasitəsi" + +#: libwnck/tasklist.c:690 +msgid "Window List" +msgstr "Pəncərə Siyahısı" + +#: libwnck/tasklist.c:691 +msgid "Tool to switch between visible windows" +msgstr "Pəncərələr arasında keçiş vasitəsi" + +#: libwnck/tasklist.c:2324 +#, fuzzy +msgid "_Close All" +msgstr "_Bağla" + +#: libwnck/tasklist.c:2339 +#, fuzzy +msgid "_Minimize All" +msgstr "_Kiçilt" + +#: libwnck/tasklist.c:2350 +#, fuzzy +msgid "_Unminimize All" +msgstr "_Böyüt" + +#: libwnck/window-action-menu.c:211 +msgid "Unmi_nimize" +msgstr "_Böyüt" + +#: libwnck/window-action-menu.c:218 +msgid "Mi_nimize" +msgstr "_Kiçilt" + +#: libwnck/window-action-menu.c:226 +msgid "Unma_ximize" +msgstr "_Balacalaşdır" + +#: libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "_Böyüt" + +#: libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "_Geri Bur" + +#: libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "Ü_stə Bur" + +#: libwnck/window-action-menu.c:256 +#, fuzzy +msgid "_Only on This Workspace" +msgstr "Yalnız _Bu İş Sahəsində" + +#: libwnck/window-action-menu.c:263 +#, fuzzy +msgid "_Always on Visible Workspace" +msgstr "Yalnız _Bu İş Sahəsində" + +#: libwnck/window-action-menu.c:378 libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "İş Sahəsi %d" + +#: libwnck/window-action-menu.c:386 +msgid "Workspace 1_0" +msgstr "İş Sahəsi 1_0" + +#: libwnck/window-action-menu.c:388 +#, c-format +msgid "Workspace %s%d" +msgstr "İş Sahəsi %s%d" + +#: libwnck/window-action-menu.c:485 +msgid "_Move" +msgstr "_Daşı" + +#: libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "Ö_lçüləndir" + +#: libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "_Bağla" + +#: libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "Başqa _İş Sahəsinə Daşı" + +#: libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "%s" + +#: libwnck/window.c:32 +msgid "untitled window" +msgstr "adsız pəncərə" + +#~ msgid "Put on _All Workspaces" +#~ msgstr "Bü_tün İş Sahələrində" diff --git a/po/be.gmo b/po/be.gmo new file mode 100644 index 0000000..62ab87b Binary files /dev/null and b/po/be.gmo differ diff --git a/po/be.po b/po/be.po new file mode 100644 index 0000000..8a46577 --- /dev/null +++ b/po/be.po @@ -0,0 +1,1230 @@ +# Vital Khilko , 2003. +# Alexander Nyakhaychyk , 2004, 2009. +# Ihar Hrachyshka , 2006, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-04 19:13+0300\n" +"PO-Revision-Date: 2011-09-04 19:14+0300\n" +"Last-Translator: Ihar Hrachyshka \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Праграма без назвы" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Пераключальнік прастор працы" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Прылада для пераключэння паміж прасторамі працы" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Пстрыкніце тут, каб перайсці ў прастору працы %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Пстрыкніце, каб пачаць перацягванне \"%s\"" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Дзейная прастора працы \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Пстрыкніце, каб перайсці ў \"%s\"" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Няма адкрытых вокнаў" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Выбар акна" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Прылада для пераключэння паміж вокнамі" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Спіс вокнаў" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Прылада для пераключэння паміж бачнымі вокнамі" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "_Мінімалізаваць усё" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Ад_навіць мінімалізававаныя вокны" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Ма_ксімалізаваць усё" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_Аднавіць максімалізаваныя вокны" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "_Закрыць усё" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "_Аднавіць мінімалізававанае акно" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "_Мінімалізаваць" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Аднавіць ма_ксімалізацыю" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ма_ксімалізаваць" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Прастора працы %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Прастора працы 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Прастора працы %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Перамясціць акно" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Змяніць памер акна" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Заўсёды _наверсе" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Заўсёды на _бачнай прасторы працы" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Толькі на гэтай прасторы працы" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Перамясціць на прасторы працы з_лева" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Перамясціць на прасторы працы с_права" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Перамясціць на прасторы працы з_верху" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Перамясціць на прасторы працы з_нізу" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "П_ерамясціць на іншую прастору працы" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Закрыць акно" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Акно без назвы" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Ідэнтыфікатар патрэбнага акна X-сістэмы" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "Ідэнтыфікатар акна-лідара групы патрэбнай праграмы" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Рэсурс класа патрэбнай групы класаў" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "КЛАС" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "КОЛЬКАСЦЬ прастор працы для апытання або мадыфікацыі" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "КОЛЬКАСЦЬ" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "КОЛЬКАСЦЬ экранаў для апытання або мадыфікацыі" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Псеўданім опцыі --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Пералічыць вокны праграмы/групы класаў/прасторы працы/экрана (фармат вываду: " +"\"XID: Назва акна\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Пералічыць прасторы працы экрана (фармат вываду: \"Нумар: Назва прасторы\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Змяніць колькасць прастор працы экрана" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Змяніць колькасць радкоў у схеме размяшчэння прастор працы экрана" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Змяніць колькасць слупкоў у схеме размяшчэння прастор працы экрана" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Паказаць стол" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Перастаць паказваць стол" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Перамясціць прастору прагляду бягучай прасторы працы ў пэўную X-каардынату" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Перамясціць прастору прагляду бягучай прасторы працы ў пэўную Y-каардынату" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Мінімалізаваць акно" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Скасаваць мінімалізацыю акна" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Максімалізаваць акно" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Скасаваць максімалізацыю акна" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Гарызантальна максімалізаваць акно" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Скасаваць гарызантальную максімалізацыю акна" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Вертыкальна максімалізаваць акно" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Скасаваць вертыкальную максімалізацыю акна" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Пачаць перамяшчэнне акна з дапамогай клавіятуры" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Пачаць змяненне памеру акна з дапамогай клавіятуры" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Задзейнічаць акно" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Закрыць акно" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Разгарнуць акно на ўвесь экран" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Выйсці з поўнаэкраннага рэжыму" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Заўсёды трымаць акно наверсе" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Не заўсёды трымаць акно наверсе" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Апусціць акно ніжэй за астатнія" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Не апускаць акно ніжэй за астатнія" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Скруціць акно ў загаловак" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Раскруціць акно з загалоўка" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Замацаваць размяшчэнне акна ў прасторы прагляду" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Адмацаваць размяшчэнне акна ў прасторы прагляду" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Прыбраць акно з пераключальніка вокнаў" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Паказваць акно ў пераключальніку вокнаў" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Прыбраць акно са спіса заданняў" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Паказваць акно ў спісе заданняў" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Паказваць акно на ўсіх прасторах працы" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Паказваць акно толькі ў дзейнай прасторы працы" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Перамясціць акно ў пэўную прастору (першая прастора мае нумар 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Змяніць X-каардынату акна" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Змяніць Y-каардынату акна" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Змяніць шырыню акна" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "ШЫРЫНЯ" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Змяніць вышыню акна" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "ВЫШЫНЯ" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Змяніць тып акна (магчымыя значэнні: normal: звычайнае , desktop: стол, " +"dock: убудаванае, dialog: дыялог, toolbar: паліца прылад, menu: меню, " +"utility: утыліта, splash: застаўка)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "ТЫП" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Змяніць назву прасторы працы" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "НАЗВА" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Перайсці да прасторы працы" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Хібнае значэнне \"%s\" для --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба працаваць з экранам %d, але ўжыта " +"--%s\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба пералічыць вокны ці прасторы " +"працы экрана %d, але ўжыта --%s\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба працаваць з прасторай працы %d, " +"але ўжыта --%s\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба пералічыць вокны прасторы працы " +"%d, але ўжыта --%s\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба працаваць з праграмай, але ўжыта " +"--%s\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба пералічыць вокны праграмы, але " +"ўжыта --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба працаваць з групай класа \"%s\", " +"але ўжыта --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба пералічыць вокны з групы класа " +"\"%s\", але ўжыта --%s\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ужытыя ўзаемна несумяшчальныя опцыі: трэба працаваць з акном, але ўжыта --" +"%s\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Ужытыя ўзаемна несумяшчальныя опцыі: --%s і --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Хібны аргумент \"%d\" для опцыі --%s: аргумент мусіць быць строга дадатным\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Хібны аргумент \"%d\" для опцыі --%s: аргумент мусіць быць дадатным\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Ужытыя ўзаемна несумяшчальныя опцыі: --%s (ці --%s) і --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Хібны аргумент \"%s\" для опцыі --%s, магчымыя значэнні: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Не ўдалося змяніць схему размяшчэння прастор працы на экране: схема ўжо " +"камусьці належыць\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Не ўдалося перамясціць прастору прагляду: бягучая прастора працы не змяшчае " +"прасторы прагляду\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Не ўдалося перамясціць прастору прагляду: няма бягучай прасторы працы\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Дзеянне забаронена\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Не ўдалося перамясціць акно ў прастору працы %d: такой прасторы не існуе\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "<назва не вызначана>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Нумар экрана: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Памер (шырыня, вышыня): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Колькасць прастор працы: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Размяшчэнне прастор працы (радкоў, слупкоў, арыентацыя): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "<няма EWMH-узгодненага кіраўніка вокнаў>" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Кіраўнік вокнаў: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Дзейная прастора працы: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Дзейнае акно: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Паказаны стол: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "так" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "не" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Назва прасторы працы: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Нумар прасторы працы: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "На экране: %d (кіраўнік вокнаў: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "<няма прасторы прагляду>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Месцапалажэнне прасторы прагляду (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Размяшчэнне ў схеме (радок, слупок): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Сусед леваруч: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Сусед праваруч: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Сусед уверсе: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Сусед унізе: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Групавы ідэнтыфікатар класа: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Назва групы класа: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "азначана" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "<не вызначана>" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Значкі: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Колькасць вокнаў: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Назва: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Назва значка: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Ідэнтыфікатар запуску: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "усе прасторы працы" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "На прасторы працы: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "звычайнае акно" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "стол" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "убудаванае акенца або панэль" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "дыялогавае акенца" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "выплыўная паліца прылад" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "выплыўное меню" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "дапаможнае акенца" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "экранная застаўка" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Тып акна: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Геаметрыя (x, y, шырыня, вышыня): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Аб'ект класа: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Ідэнтыфікатар сеанса: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Лідар групы: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Перакрывае: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "мінімалізаванае" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "максімалізаванае" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "гарызантальна максімалізаванае" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "вертыкальна максімалізаванае" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "скручанае ў загаловак" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "прычэпленае" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "ліпкае" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "наверсе" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "унізе" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "на ўвесь экран" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "патрабуе ўвагі" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "схавана для пераключальніка вокнаў" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "схавана для спіса заданняў" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "звычайнае" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Стан: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "перамяшчэнне" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "змяненне памеру" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "скрутка ў загаловак" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "раскрутка з загалоўка" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "прыклейванне" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "адклейванне" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "гарызантальная максімалізацыя" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "касаванне гарызантальнай максімалізацыі" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "вертыкальная максімалізацыя" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "касаванне вертыкальнай максімалізацыі" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "змяненне прасторы працы" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "прычэпліванне" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "адчэпліванне" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "мінімалізацыя" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "касаванне мінімалізацыі акна" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "максімалізацыя" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "скасаванне максімалізацыі акна" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "пераключэнне поўнаэкраннага рэжыму" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "закрыццё" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "змяшчэнне наверсе" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "ануляванне змяшчэння наверсе" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "змяшчэнне ўнізе" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "ануляванне змяшчэння ўнізе" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "дзеянні немагчымыя" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Магчымыя дзеянні: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Праграма для вываду ці змянення значэнняў уласцівасцяў экрана/прастор працы/" +"вокнаў або працы з імі ў адпаведнасці са спецыфікацыяй EWMH.\n" +"Каб атрымаць больш звестак аб спецыфікацыі, гл.:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Опцыі пераліку вокнаў і прастор працы" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Паказаць опцыі пераліку вокнаў і прастор працы" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Опцыі мадыфікацыі ўласцівасцяў акна" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Паказаць опцыі мадыфікацыі ўласцівасцяў акна" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Опцыі мадыфікацыі ўласцівасцяў прасторы працы" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Паказаць опцыі мадыфікацыі ўласцівасцяў прасторы працы" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Опцыі мадыфікацыі ўласцівасцяў экрана" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Паказаць опцыі мадыфікацыі ўласцівасцяў экрана" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Памылка разбору аргументаў: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Не ўдалося пачаць узаемадзеянне з экранам %d: такога экрана не існуе\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Не ўдалося пачаць узаемадзеянне з прасторай працы %d: не ўдалося адшукаць " +"такую прастору\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Не ўдалося пачаць узаемадзеянне з групай класа \"%s\": не ўдалося адшукаць " +"такую групу\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Не ўдалося пачаць узаемадзеянне з праграмай, якая мае лідара групы з XID = " +"%lu: не ўдалося адшукаць такую праграму\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Не ўдалося пачаць узаемадзеянне з акном, якое мае XID = %lu: не ўдалося " +"адшукаць такое акно\n" diff --git a/po/be@latin.gmo b/po/be@latin.gmo new file mode 100644 index 0000000..d595333 Binary files /dev/null and b/po/be@latin.gmo differ diff --git a/po/be@latin.po b/po/be@latin.po new file mode 100644 index 0000000..20d8cb6 --- /dev/null +++ b/po/be@latin.po @@ -0,0 +1,1249 @@ +# Biełaruski pierakład libwnck. +# Copyright (C) 2007 Free Software Foundation. +# This file is distributed under the same license as the libwnck package. +# Ihar Hračyška , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-12-08 11:06+0200\n" +"PO-Revision-Date: 2007-12-08 11:06+0200\n" +"Last-Translator: Ihar Hrachyshka \n" +"Language-Team: Belarusian Latin \n" +"Language: be@latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplikacyja biaz nazvy" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "Pieraklučalnik pracoŭnych abšaraŭ" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "Pryłada dla pieraklučeńnia pracoŭnych abšaraŭ" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klikni, kab pieraklučycca na pracoŭny abšar %s" + +#: ../libwnck/pager.c:1903 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klikni dla pačatku pieraciahvańnia \"%s\"" + +#: ../libwnck/pager.c:1906 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Dziejny pracoŭny abšar: \"%s\"" + +#: ../libwnck/pager.c:1911 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klikni, kab pieraklučycca na \"%s\"" + +#: ../libwnck/selector.c:1171 +msgid "No Windows Open" +msgstr "Niama adčynienych voknaŭ" + +#: ../libwnck/selector.c:1224 +msgid "Window Selector" +msgstr "Vybar voknaŭ" + +#: ../libwnck/selector.c:1225 +msgid "Tool to switch between windows" +msgstr "Pryłada pieraklučeńnia pamiž voknami" + +#: ../libwnck/tasklist.c:727 +msgid "Window List" +msgstr "Śpis voknaŭ" + +#: ../libwnck/tasklist.c:728 +msgid "Tool to switch between visible windows" +msgstr "Pryłada dla pieraklučeńnia pamiž bačnymi voknami" + +#: ../libwnck/tasklist.c:3016 +msgid "Mi_nimize All" +msgstr "_Minimalizuj usie" + +#: ../libwnck/tasklist.c:3027 +msgid "Un_minimize All" +msgstr "_Anuluj minimalizacyju ŭsich voknaŭ" + +#: ../libwnck/tasklist.c:3035 +msgid "Ma_ximize All" +msgstr "Ma_ksymalizuj usie" + +#: ../libwnck/tasklist.c:3046 +msgid "_Unmaximize All" +msgstr "_Anuluj maksymalizacyju ŭsich voknaŭ" + +#: ../libwnck/tasklist.c:3058 +msgid "_Close All" +msgstr "_Začyni ŭsie" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "Užyj KOLKI_RADKOŬ radkoŭ" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "KOLKI_RADKOŬ" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "Pakazvaj tolki hety pracoŭny abšar" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "Užyj aryjentacyju sprava ŭleva jak zmoŭčanuju" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "Pakazvaj nazvy rabočych abšaraŭ, a nia ichnaje źmieściva" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "Užyj vertykalnuju aryjentacyju" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/test-selector.c:12 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "Nie pakazvaj vakno na paneli zadač" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "Zaŭsiody hrupuj vokny" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "Nikoli nie hrupuj vokny" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "Pakazvaj vokny z usich rabočych abšaraŭ" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "Uklučy prazrystaść" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "_Anuluj minimalizacyju" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimalizuj" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "An_uluj maksymalizacyju" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ksymalizuj" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Pracoŭny abšar %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Pracoŭny abšar 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Pracoŭny abšar %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Pierasuń" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Źm_iani pamier" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Zaŭsiody _ŭhary" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Zaŭsiody na bačnym pracoŭnym abšary" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Tolki na hetym pracoŭnym abšary" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Pierasuń na _levy pracoŭny abšar" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Pierasuń na _pravy pracoŭny abšar" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Pierasuń na _vierchni pracoŭny abšar" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Pierasuń na _nižni pracoŭny abšar" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Pierasuń na _inšy pracoŭny abšar" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "Za_čyni" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Vakno biez zahałoŭka" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "X window ID patrebnaha vakna" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "X window ID lidera hrupy dla patrebnaj aplikacyi" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Klasavy resurs patrebnaj klasavaj hrupy" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "KLASA" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMAR patrebnaha rabočaha abšaru" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:169 ../libwnck/wnckprop.c:171 +#: ../libwnck/wnckprop.c:173 ../libwnck/wnckprop.c:262 +msgid "NUMBER" +msgstr "NUMAR" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMAR patrebnaha ekranu" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Alias na --window" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:161 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Pakažy vokny dla aplikacyi/klasavaj hrupy/rabočaha abšaru/ekranu (farmat " +"vyjścia: \"XID: Vakno Nazva\")" + +#: ../libwnck/wnckprop.c:163 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Pakažy rabočyja abšary dla ekranu (farmat vyjścia: \"Numar: Rabočy abšar " +"Nazva\")" + +#: ../libwnck/wnckprop.c:169 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Źmiani kolkaść rabočych abšaraŭ dla ekranu na KOLKAŚĆ" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Źmiani schiemu rabočaha abšaru dla ekranu, kab było KOLKAŚĆ radoŭ" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Źmiani schiemu rabočaha abšaru dla ekranu, kab było KOLKAŚĆ kalonaŭ" + +#: ../libwnck/wnckprop.c:175 +msgid "Show the desktop" +msgstr "Pakažy stoł" + +#: ../libwnck/wnckprop.c:177 +msgid "Stop showing the desktop" +msgstr "Anuluj pakaz stała" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:181 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Pierasuń abšar ahladu dla dziejnaha rabočaha abšaru na X-kaardynatu X" + +#: ../libwnck/wnckprop.c:181 ../libwnck/wnckprop.c:264 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Pierasuń abšar ahladu dla dziejnaha rabočaha abšaru na Y-kaardynatu Y" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:266 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:191 +msgid "Minimize the window" +msgstr "Minimalizuj vakno" + +#: ../libwnck/wnckprop.c:193 +msgid "Unminimize the window" +msgstr "Deminimalizuj vakno" + +#: ../libwnck/wnckprop.c:195 +msgid "Maximize the window" +msgstr "Maksymalizuj vakno" + +#: ../libwnck/wnckprop.c:197 +msgid "Unmaximize the window" +msgstr "Demaksymalizuj vakno" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize horizontally the window" +msgstr "Maksymalizuj haryzantalna vakno" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize horizontally the window" +msgstr "Demaksymalizuj haryzantalna vakno" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize vertically the window" +msgstr "Maksymalizuj vertykalna vakno" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize vertically the window" +msgstr "Demaksymalizuj vertykalna vakno" + +#: ../libwnck/wnckprop.c:207 +msgid "Start moving the window via the keyboard" +msgstr "Pačni pieranos akna z dapamohaj klavijatury" + +#: ../libwnck/wnckprop.c:209 +msgid "Start resizing the window via the keyboard" +msgstr "Pačni źmianieńnie pamieraŭ vakna z dapamohaj klavijatury" + +#: ../libwnck/wnckprop.c:211 +msgid "Activate the window" +msgstr "Aktyvizuj vakno" + +#: ../libwnck/wnckprop.c:213 +msgid "Close the window" +msgstr "Začyni vakno" + +#: ../libwnck/wnckprop.c:216 +msgid "Make the window fullscreen" +msgstr "Raściahni vakno na poŭny ekran" + +#: ../libwnck/wnckprop.c:218 +msgid "Make the window quit fullscreen mode" +msgstr "Vyjdzi z poŭnaekrannaha režymu dla vakna" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window always on top" +msgstr "Źmiaści vakno nazaŭsiody ŭhary" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window not always on top" +msgstr "Anuluj raźmiaščeńnie vakna zaŭsiody ŭhary" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window below other windows" +msgstr "Źmiaści vakno nižej inšych voknaŭ" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not below other windows" +msgstr "Anuluj raźmiaščeńnie vakna nižej inšych voknaŭ" + +#: ../libwnck/wnckprop.c:228 +msgid "Shade the window" +msgstr "Zharni vakno" + +#: ../libwnck/wnckprop.c:230 +msgid "Unshade the window" +msgstr "Razharni vakno" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:234 +msgid "Make the window have a fixed position in the viewport" +msgstr "Zamacuj dla vakna stałaje pałažeńnie ŭ abšary ahladu" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Admacuj vakno ad stałaha pałažeńnia ŭ abšary ahladu" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not appear in pagers" +msgstr "Nie pakazvaj vakno ŭ pagerach" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:250 +msgid "Make the window appear in pagers" +msgstr "Pakazvaj vakno ŭ pagerach" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:253 +msgid "Make the window not appear in tasklists" +msgstr "Nie pakazvaj vakno ŭ śpisie zadač" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:256 +msgid "Make the window appear in tasklists" +msgstr "Pakazvaj vakno ŭ śpisie zadač" + +#: ../libwnck/wnckprop.c:258 +msgid "Make the window visible on all workspaces" +msgstr "Pakazvaj vakno na ŭsich rabočych abšarach" + +#: ../libwnck/wnckprop.c:260 +msgid "Make the window visible on the current workspace only" +msgstr "Pakazvaj vakno tolki na dziejnym rabočym abšary" + +#: ../libwnck/wnckprop.c:262 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Pieraniasi vakno na rabočy abšar NUMAR (pieršy rabočy abšar maje numar 0)" + +#: ../libwnck/wnckprop.c:264 +msgid "Change the X coordinate of the window to X" +msgstr "Źmiani kaardynatu X vakna na X" + +#: ../libwnck/wnckprop.c:266 +msgid "Change the Y coordinate of the window to Y" +msgstr "Źmiani kaardynatu Y vakna na Y" + +#: ../libwnck/wnckprop.c:268 +msgid "Change the width of the window to WIDTH" +msgstr "Źmiani šyryniu vakna na ŠYRYNIU" + +#: ../libwnck/wnckprop.c:268 +msgid "WIDTH" +msgstr "ŠYRYNIA" + +#: ../libwnck/wnckprop.c:270 +msgid "Change the height of the window to HEIGHT" +msgstr "Źmiani vyšyniu vakna na VYŠYNIU" + +#: ../libwnck/wnckprop.c:270 +msgid "HEIGHT" +msgstr "VYŠYNIA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:273 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Źmiani typ vakna na TYP (mahčymyja vartaści: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:273 +msgid "TYPE" +msgstr "TYP" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the name of the workspace to NAME" +msgstr "Źmiani nazvu rabočaha abšaru na NAZVU" + +#: ../libwnck/wnckprop.c:279 +msgid "NAME" +msgstr "NAZVA" + +#: ../libwnck/wnckprop.c:281 +msgid "Activate the workspace" +msgstr "Aktyvizuj hety pracoŭny abšar" + +#: ../libwnck/wnckprop.c:373 ../libwnck/wnckprop.c:397 +#: ../libwnck/wnckprop.c:433 ../libwnck/wnckprop.c:456 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Niapravilnaja vartaść \"%s\" dla --%s" + +#: ../libwnck/wnckprop.c:490 ../libwnck/wnckprop.c:509 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba ŭzajemadziejničać z ekranam %d, ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:499 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba pakazać vokny ci rabočyja abšary z ekranu %d, " +"ale vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:522 ../libwnck/wnckprop.c:542 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba ŭzajemadziejničać z rabočym abšaram %d, ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:532 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba pakazać vokny z rabočaha abšaru %d, ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba ŭzajemadziejničać z aplikacyjaj, ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:564 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba pakazać vokny aplikacyi, ale vykarystanaja --%" +"s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba ŭzajemadziejničać z klasavaj hrupaj \"%s\", " +"ale vykarystanaja --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:588 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: treba pakazać vokny z klasavaj hrupy \"%s\", ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:600 ../libwnck/wnckprop.c:609 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Jość kanfliktnyja opcyi: vymahajecca ŭzajemadziejańnie z vaknom, ale " +"vykarystanaja --%s\n" + +#: ../libwnck/wnckprop.c:628 ../libwnck/wnckprop.c:709 +#: ../libwnck/wnckprop.c:756 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Jość kanfliktnyja opcyi: --%s i --%s\n" + +#: ../libwnck/wnckprop.c:667 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Niapravilny arhument \"%d\" dla --%s: arhument pavinny być stroha dadatnym\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Niapravilny arhument \"%d\" dla --%s: arhument pavinny być dadatnym\n" + +#: ../libwnck/wnckprop.c:775 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Jość kanfliktnyja opcyi: --%s albo --%s, i --%s\n" + +#: ../libwnck/wnckprop.c:807 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Niapravilny arhument \"%s\" dla --%s, dazvolenyja vartaści: %s\n" + +#: ../libwnck/wnckprop.c:850 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Niemahčyma źmianić schiemu rabočaha abšaru na ekranie: schiema ŭžo maje " +"ŭładalnika\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:884 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Nielha pieranieści abšar ahladu: dziejny rabočy abšar nia ŭtrymlivaje abšaru " +"ahladu\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:890 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Nielha pieranieści abšar ahladu: niama dziejnaha rabočaha abšaru\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:926 ../libwnck/wnckprop.c:935 +#: ../libwnck/wnckprop.c:944 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:1026 +#, c-format +msgid "Action not allowed\n" +msgstr "Aperacyja nie dazvolenaja\n" + +#: ../libwnck/wnckprop.c:1022 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Nielha pieranieści vakno na rabočy abšar %d: jon nie isnuje\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1086 ../libwnck/wnckprop.c:1218 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1089 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1109 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1172 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Numar ekranu: %d\n" + +#: ../libwnck/wnckprop.c:1174 ../libwnck/wnckprop.c:1255 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Hieametryja (šyrynia, vyšynia): %d, %d\n" + +#: ../libwnck/wnckprop.c:1178 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Kolkaść pracoŭnych abšaraŭ: %d\n" + +#: ../libwnck/wnckprop.c:1184 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Schiema rabočaha abšaru (radoŭ, kalonaŭ, aryjentacyja): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1194 ../libwnck/wnckprop.c:1251 +#: ../libwnck/wnckprop.c:1443 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Kiraŭnik voknaŭ: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1200 ../libwnck/wnckprop.c:1279 +#: ../libwnck/wnckprop.c:1291 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1205 ../libwnck/wnckprop.c:1284 +#: ../libwnck/wnckprop.c:1296 ../libwnck/wnckprop.c:1308 +#: ../libwnck/wnckprop.c:1320 ../libwnck/wnckprop.c:1435 +msgid "workspace|none" +msgstr "niama" + +#: ../libwnck/wnckprop.c:1206 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktyŭny pracoŭny abšar: %s\n" + +#: ../libwnck/wnckprop.c:1215 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1227 +msgid "window|none" +msgstr "niama" + +#: ../libwnck/wnckprop.c:1228 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktyŭnaje vakno: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Pakazvajecca stoł: %s\n" + +#: ../libwnck/wnckprop.c:1233 +msgid "true" +msgstr "praŭda" + +#: ../libwnck/wnckprop.c:1233 +msgid "false" +msgstr "niapraŭda" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nazva pracoŭnaha abšaru: %s\n" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Numar pracoŭnaha abšaru: %d\n" + +#: ../libwnck/wnckprop.c:1252 ../libwnck/wnckprop.c:1444 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Na ekranie: %d (Kiraŭnik voknaŭ: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1266 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1269 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Pałažeńnie abšaru ahladu (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Pałažeńnie ŭ schiemie (rad, kalona): %d, %d\n" + +#: ../libwnck/wnckprop.c:1285 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Levy susied: %s\n" + +#: ../libwnck/wnckprop.c:1297 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Pravy susied: %s\n" + +#: ../libwnck/wnckprop.c:1309 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Vyšejšy susied: %s\n" + +#: ../libwnck/wnckprop.c:1321 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Nižejšy susied: %s\n" + +#. Translators: Ressource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1333 +#, c-format +msgid "Resource Class: %s\n" +msgstr "Klasa resursaŭ: %s\n" + +#: ../libwnck/wnckprop.c:1335 +#, c-format +msgid "Group Name: %s\n" +msgstr "Nazva hrupy: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1341 ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1419 +msgid "set" +msgstr "akreślena" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1344 ../libwnck/wnckprop.c:1368 +#: ../libwnck/wnckprop.c:1375 ../libwnck/wnckprop.c:1405 +#: ../libwnck/wnckprop.c:1412 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1487 ../libwnck/wnckprop.c:1497 +#: ../libwnck/wnckprop.c:1505 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1345 ../libwnck/wnckprop.c:1369 +#: ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikony: %s\n" + +#: ../libwnck/wnckprop.c:1348 ../libwnck/wnckprop.c:1386 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Kolkaść voknaŭ: %d\n" + +#: ../libwnck/wnckprop.c:1360 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Name: %s\n" +msgstr "Nazva: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1415 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nazva ikony: %s\n" + +#: ../libwnck/wnckprop.c:1376 ../libwnck/wnckprop.c:1498 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1383 +msgid "startupID|none" +msgstr "niama" + +#: ../libwnck/wnckprop.c:1384 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Startavy ID: %s\n" + +#: ../libwnck/wnckprop.c:1432 +msgid "all workspaces" +msgstr "usie pracoŭnyja abšary" + +#: ../libwnck/wnckprop.c:1436 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Na pracoŭnym abšary: %s\n" + +#: ../libwnck/wnckprop.c:1451 +msgid "normal window" +msgstr "zvyčajnaje vakno" + +#: ../libwnck/wnckprop.c:1454 +msgid "desktop" +msgstr "stoł" + +#: ../libwnck/wnckprop.c:1457 +msgid "dock or panel" +msgstr "dok ci panel" + +#: ../libwnck/wnckprop.c:1460 +msgid "dialog window" +msgstr "dyjalohavaje vakno" + +#: ../libwnck/wnckprop.c:1463 +msgid "tearoff toolbar" +msgstr "adłučanaja panel pryładździa" + +#: ../libwnck/wnckprop.c:1466 +msgid "tearoff menu" +msgstr "adłučanaje menu" + +#: ../libwnck/wnckprop.c:1469 +msgid "utility window" +msgstr "słužbovaje vakno" + +#: ../libwnck/wnckprop.c:1472 +msgid "splash screen" +msgstr "ekran zastaŭki" + +#: ../libwnck/wnckprop.c:1477 +#, c-format +msgid "Window Type: %s\n" +msgstr "Typ akna: %s\n" + +#: ../libwnck/wnckprop.c:1480 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Hieametryja (x, y, šyrynia, vyšynia): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1489 +#, c-format +msgid "Class Group: %s\n" +msgstr "Hrupa klasy: %s\n" + +#: ../libwnck/wnckprop.c:1491 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1506 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID sesii: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Lider hrupy: %lu\n" + +#. Translators: A window can be transient for another window: it means it's on top of it +#: ../libwnck/wnckprop.c:1517 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Časovy na: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1532 ../libwnck/wnckprop.c:1579 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1536 ../libwnck/wnckprop.c:1581 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1542 +msgid "minimized" +msgstr "minimalizavanaje" + +#: ../libwnck/wnckprop.c:1543 +msgid "maximized" +msgstr "maksymalizavanaje" + +#: ../libwnck/wnckprop.c:1547 +msgid "maximized horizontally" +msgstr "maksymalizavanaje haryzantalna" + +#: ../libwnck/wnckprop.c:1549 +msgid "maximized vertically" +msgstr "maksymalizavanaje vertykalna" + +#: ../libwnck/wnckprop.c:1551 +msgid "shaded" +msgstr "zhornutaje" + +#: ../libwnck/wnckprop.c:1552 +msgid "pinned" +msgstr "prymacavanaje" + +#: ../libwnck/wnckprop.c:1553 +msgid "sticky" +msgstr "pryleplenaje" + +#: ../libwnck/wnckprop.c:1554 +msgid "above" +msgstr "vyšej" + +#: ../libwnck/wnckprop.c:1555 +msgid "below" +msgstr "nižej" + +#: ../libwnck/wnckprop.c:1556 +msgid "fullscreen" +msgstr "poŭny ekran" + +#: ../libwnck/wnckprop.c:1557 +msgid "needs attention" +msgstr "patrabuje ŭvahi" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1562 +msgid "skip pager" +msgstr "abmini pager" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:1564 +msgid "skip tasklist" +msgstr "abmini śpis zadač" + +#: ../libwnck/wnckprop.c:1566 +msgid "normal" +msgstr "zvyčajnaje" + +#: ../libwnck/wnckprop.c:1567 +#, c-format +msgid "State: %s\n" +msgstr "Stan: %s\n" + +#: ../libwnck/wnckprop.c:1588 +msgid "move" +msgstr "pierasuń" + +#: ../libwnck/wnckprop.c:1589 +msgid "resize" +msgstr "źmiani pamier" + +#: ../libwnck/wnckprop.c:1590 +msgid "shade" +msgstr "zharni" + +#: ../libwnck/wnckprop.c:1591 +msgid "unshade" +msgstr "razharni" + +#: ../libwnck/wnckprop.c:1592 +msgid "stick" +msgstr "prylapi" + +#: ../libwnck/wnckprop.c:1593 +msgid "unstick" +msgstr "adlapi" + +#: ../libwnck/wnckprop.c:1595 +msgid "maximize horizontally" +msgstr "maksymalizuj haryzantalna" + +#: ../libwnck/wnckprop.c:1597 +msgid "unmaximize horizontally" +msgstr "demaksymalizuj haryzantalna" + +#: ../libwnck/wnckprop.c:1599 +msgid "maximize vertically" +msgstr "maksymalizuj vertykalna" + +#: ../libwnck/wnckprop.c:1601 +msgid "unmaximize vertically" +msgstr "demaksymalizuj vertykalna" + +#: ../libwnck/wnckprop.c:1604 +msgid "change workspace" +msgstr "pieraklučy rabočy abšar" + +#: ../libwnck/wnckprop.c:1606 +msgid "pin" +msgstr "prymacuj" + +#: ../libwnck/wnckprop.c:1608 +msgid "unpin" +msgstr "admacuj" + +#: ../libwnck/wnckprop.c:1609 +msgid "minimize" +msgstr "minimalizuj" + +#: ../libwnck/wnckprop.c:1610 +msgid "unminimize" +msgstr "deminimalizuj" + +#: ../libwnck/wnckprop.c:1611 +msgid "maximize" +msgstr "maksymalizuj" + +#: ../libwnck/wnckprop.c:1612 +msgid "unmaximize" +msgstr "demaksymalizuj" + +#: ../libwnck/wnckprop.c:1614 +msgid "change fullscreen mode" +msgstr "pieraklučy poŭnaekranny režym" + +#: ../libwnck/wnckprop.c:1615 +msgid "close" +msgstr "začyni" + +#: ../libwnck/wnckprop.c:1617 +msgid "make above" +msgstr "pavyś" + +#: ../libwnck/wnckprop.c:1619 +msgid "unmake above" +msgstr "anuluj pavyšeńnie" + +#: ../libwnck/wnckprop.c:1621 +msgid "make below" +msgstr "paniź" + +#: ../libwnck/wnckprop.c:1623 +msgid "unmake below" +msgstr "anuluj panižeńnie" + +#: ../libwnck/wnckprop.c:1625 +msgid "no action possible" +msgstr "nivodnaja aperacyja niemahčymaja" + +#: ../libwnck/wnckprop.c:1626 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Mahčymyja aperacyi: %s\n" + +#: ../libwnck/wnckprop.c:1803 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Prahladaj ci źmianiaj ułaścivaści ekranu/rabočaha abšaru/akna, albo " +"ŭzajemadziejničaj ź imi, zhodna sa specyfikacyjaj EWMH.\n" +"Dziela źviestak ab hetaj specyfikacyi hladzi:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1813 +msgid "Options to list windows or workspaces" +msgstr "Opcyi dziela pakazu śpisu voknaŭ ci rabočych abšaraŭ" + +#: ../libwnck/wnckprop.c:1814 +msgid "Show options to list windows or workspaces" +msgstr "Pakazvaj opcyi dziela pakazu śpisu voknaŭ ci rabočych abšaraŭ" + +#: ../libwnck/wnckprop.c:1820 +msgid "Options to modify properties of a window" +msgstr "Opcyi dziela źmieny ŭłaścivaściaŭ vakna" + +#: ../libwnck/wnckprop.c:1821 +msgid "Show options to modify properties of a window" +msgstr "Pakazvaj opcyi dziela źmieny ŭłaścivaściaŭ vakna" + +#: ../libwnck/wnckprop.c:1827 +msgid "Options to modify properties of a workspace" +msgstr "Opcyi dziela źmieny ŭłaścivaściaŭ rabočaha abšaru" + +#: ../libwnck/wnckprop.c:1828 +msgid "Show options to modify properties of a workspace" +msgstr "Pakažy opcyi źmieny ŭłaścivaściaŭ rabočaha abšaru" + +#: ../libwnck/wnckprop.c:1834 +msgid "Options to modify properties of a screen" +msgstr "Opcyi dziela źmieny ŭłaścivaściaŭ ekranu" + +#: ../libwnck/wnckprop.c:1835 +msgid "Show options to modify properties of a screen" +msgstr "Pakažy opcyi źmieny ŭłaścivaściaŭ ekranu" + +#: ../libwnck/wnckprop.c:1845 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "U časie razboru arhumentaŭ adbyłasia pamyłka: %s\n" + +#: ../libwnck/wnckprop.c:1868 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Niemahčyma ŭzajemadziejničać z ekranam %d: ekran nie isnuje\n" + +#: ../libwnck/wnckprop.c:1924 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Niemahčyma ŭzajemadziejničać z rabočym abšaram %d: rabočy abšar nia " +"znojdzieny\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Niemahčyma ŭzajemadziejničać z klasavaj hrupaj \"%s\": klasavaja hrupa nia " +"znojdzienaja\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Niemahčyma ŭzajemadziejničać z aplikacyjaj, u jakoj lider hrupy maje XID %" +"lu: aplikacyja nia znojdzienaja\n" + +#: ../libwnck/wnckprop.c:1993 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Niemahčyma ŭzajemadziejničać z aknom, z XIDam %lu: akno nia znojdzienaje\n" + +#~ msgid "none" +#~ msgstr "niama" + +#~ msgid "Unknown Window" +#~ msgstr "Nieviadomaje akno" diff --git a/po/bg.gmo b/po/bg.gmo new file mode 100644 index 0000000..83d1678 Binary files /dev/null and b/po/bg.gmo differ diff --git a/po/bg.po b/po/bg.po new file mode 100644 index 0000000..ee18e7d --- /dev/null +++ b/po/bg.po @@ -0,0 +1,1234 @@ +# Bulgarian translation for libwnck. +# Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2009, 2011 Free Software Foundation, Inc. +# Evgeni Boevski , 2002; +# Yanko Kaneti , 2002; +# Vladimir Petkov , 2004, 2005, 2006. +# Alexander Shopov , 2006, 2007, 2009, 2011. +# Yavor Doganov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: libwnck master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-08-13 06:54+0300\n" +"PO-Revision-Date: 2011-08-13 06:52+0300\n" +"Last-Translator: Alexander Shopov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Програма без име" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Превключвател между работни плотове" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Инструмент за превключване между работни плотове" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Натиснете тук за превключване към работен плот %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Натиснете, за да започнете да влачите „%s“" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Текущ работен плот: „%s“" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Натиснете тук за превключване към „%s“" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Няма отворени прозорци" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Избор на прозорец" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Програма за превключване между прозорците" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Списък с прозорците" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Инструмент за превключване между видимите прозорци" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "Минимизиране на вси_чки" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Дем_инимизиране на всички" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "_Максимизиране на всички" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "Дем_инимизиране на всички" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "За_тваряне на всички" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Деми_нимизиране" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Ми_нимизиране" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Де_максимизиране" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "_Максимизиране" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Работен плот %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Работен плот 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Работен плот %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Преместване" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "О_размеряване" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Винаги _отгоре" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Винаги на видимия работен плот" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Само на този работен плот" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Преместване на _левия работен плот" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Преместване на десни_я работен плот" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Преместване на _горния работен плот" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Преместване на _долния работен плот" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Преместване на др_уг работен плот" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Затваряне" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Неозаглавен прозорец" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Идентификаторът по X на прозореца, който да се проучи или промени" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "Ид. по X" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "" +"Ид. по X на груповия водач на приложение, което да се проучи или промени" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Ресурсът „клас“ на групата, която да се проучи" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "КЛАС" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ЧИСЛОто-номер на работния плот, който да се проучи или промени" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "ЧИСЛО" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "ЧИСЛОто-номер на екрана, който да се преглед или промени" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Синоним на „--window“" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Списък с прозорците на приложението/групата с клас/работния плот/екрана " +"(изходен формат: „Ид. по X: Име на прозорец“)" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Списък с работните плотове на екрана (изходен формат: „Номер: Име на " +"работния плот“)" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Промяна на броя на работните плотове до това ЧИСЛО" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Задаване на броя редове в подредбата на работните плотове да е това ЧИСЛО" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Задаване на броя колони в подредбата на работните плотове да е това ЧИСЛО" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Показване на работния плот" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Край на показването на работния плот" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Преместване на изгледа към текущия работен плот към абсциса X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Преместване на изгледа към текущия работен плот към ордината X" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Минимизиране на прозореца" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Деминимизиране на прозореца" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Максимизиране на прозореца" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Демаксимизиране на прозореца" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Максимизиране на прозореца по хоризонтала" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Демаксимизиране на прозореца по хоризонтала" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Максимизиране на прозореца по вертикала" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Демаксимизиране на прозореца по вертикала" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Начало на местенето на прозореца чрез клавиатурата" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Начало на оразмеряването на прозореца чрез клавиатурата" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Активиране на прозореца" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Затваряне на прозореца" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Режим на цял екран за прозореца" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Излизане от режим на цял екран за прозореца" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Прозорецът винаги да е отгоре" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Прозорецът да не е само отгоре" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Прозорецът винаги да е отдолу" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Прозорецът да не е само отдолу" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Навиване на прозореца" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Развиване на прозореца" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Прозорецът да е с фиксирано положение спрямо изгледа" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Прозорецът да не е с фиксирано положение спрямо изгледа" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Прозорецът да не се появява в превключвателите на работни плотове" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Прозорецът да се появява в превключвателите на работни плотове" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Прозорецът да не се появява в списъците с прозорци" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Прозорецът да се появява в списъците с прозорци" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Прозорецът да е видим на всички работни плотове" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Прозорецът да е видим само в този работен плот" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Преместване на прозореца на работния плот с този НОМЕР (първият работен плот " +"е с номер 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Задаване на хоризонталната координата на прозореца да е X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Задаване на вертикалната координата на прозореца да е Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Задаване на ШИРОЧИНАта на прозореца" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "ШИРОЧИНА" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Задаване на ВИСОЧИНАта на прозореца" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "ВИСОЧИНА" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Промяна на прозореца да е от посочения ВИД (възможни стойности са " +"„normal“ (обикновен), „desktop“ (работен плот), „dock“ (док), " +"„dialog“ (диалогов), „toolbar“ (лента с инструменти), „menu“ (меню), " +"„utility“ (спомагателен), „splash“ (начален))" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "ВИД" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Задаване на ИМЕто на работния плот" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "ИМЕ" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Активиране на работния плот" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Грешна стойност „%s“ за --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се работи с екран %d, но е " +"посочено --%s\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се изброят прозорците или " +"работните плотове на екран %d, но е посочено --%s\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се работи с работния плот %d, но " +"е посочено --%s\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се изброят прозорците на работния " +"плот %d, но е посочено --%s\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се работи с приложение, но е " +"посочено --%s\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се изброят прозорците на " +"приложение, но е посочено --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се работи с групата с клас „%s“, " +"но е посочено --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се изброят прозорците от група с " +"класа „%s“, но е посочено --%s\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Зададени са противоречиви опции: трябва да се работи с прозорец, но е " +"посочено --%s\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Зададени са противоречиви опции: --%s и --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "Неправилен аргумент „%d“ за --%s: той трябва да е положителен\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Неправилен аргумент „%d“ за --%s: той трябва да е положителен\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Зададени са противоречиви опции: --%s, --%s и --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Неправилен аргумент „%s“ за --%s: правилните стойности са: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Подредбата на работните плотове на екрана не може да бъде променена: " +"подредбата вече е притежавана\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Изгледът не може да бъде преместен: текущия работен плот не съдържа изглед\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Изгледът не може да бъде преместен, в момента няма текущ работен плот\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Действието не е позволено\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Прозорецът не може да бъде преместен на работния плот %d: той не съществува\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "<името не е зададено>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Номер на екран: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Геометрия (широчина, височина): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Брой работни плотове %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Подредба на работните плотове (редове, колони, ориентация): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "<липсва мениджър на прозорци съвместим с EWMH>" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Мениджър на прозорци: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d („%s“)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Активен работен плот: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "„%s“" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Активен прозорец: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Показване на работния плот: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "истина" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "лъжа" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Име на работен плот: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Работен плот: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "На екран: %d (мениджър на прозорци: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "<няма изглед>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Местоположение на изгледа (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Положение в подредбата (ред, колона): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Ляв съсед: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Десен съсед: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Горен съсед: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Долен съсед: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Идентификатор на клас на група: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Име на клас на група: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "зададено" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "<не е зададено>" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Икони: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Брой прозорци %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Име: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Име на иконата: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "Ид. на пр.: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "няма" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Ид. при стартиране: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "всички работни плотове" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "На работен плот: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "обикновен прозорец" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "работен плот" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "док или панел" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "диалогов прозорец" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "лента за откъсване" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "меню за откъсване" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "прозорец с инструменти" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "начален прозорец" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Вид на прозореца: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Геометрия (x, y, широчина, височина): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Член на клас: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "Ид. по X: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Ид. на сесия: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Групов водач: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Временен прозорец за: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "минимизиран" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "максимизиран" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "максимизиран по хоризонтала" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "максимизиран по вертикала" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "навит" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "забоден на всички работни плотове" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "залепен на всички изгледи" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "над" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "под" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "на цял екран" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "иска внимание" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "прескачане на превключвателя на работни плотове" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "прескачане на списъка с прозорците" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "обикновен" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Състояние: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "преместване" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "оразмеряване" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "навиване" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "развиване" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "залепяне" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "отлепяне" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "максимизиране по хоризонтала" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "демаксимизиране по хоризонтала" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "максимизиране по вертикала" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "демаксимизиране по вертикала" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "смяна на работния плот" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "забождане" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "освобождаване" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "минимизиране" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "деминимизиране" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "максимизиране" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "демаксимизиране" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "промяна на режима на цял екран" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "затваряне" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "да е над всички" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "да не е над всички" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "да е под всички" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "да не е под всички" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "няма възможно действие" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Възможни действия: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Отпечатване или промяна на настройките на екран/работен плот/прозорец или " +"управление на такъв обект според спецификацията EWMH.\n" +"За повече информация относно спецификацията виж:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Опции за списъка на прозорците и работните плотове" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Показване на опциите за списъка на прозорците и работните плотове" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Опции за промяна на настройките на прозорец" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Показване на опциите за промяна на настройките на прозорец" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Опции за промяна на настройките на работен плот" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Показване на опциите за промяна на настройките на работен плот" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Опции за промяна на настройките на екран" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Показване на опциите за промяна на настройките на екран" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Грешка при анализа на аргументи: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Екран %d не съществува и не може да се работи с него\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Работният плот %d не съществува и не може да се работи с него\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Не може да се работи с групата с клас „%s“: тя не може да бъде открита\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Не може да се работи с приложението с групов водач с идентификатор по X %lu: " +"приложението не може да бъде открито\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Не може да се работи с прозорец с идентификатор по X %lu: прозорецът не може " +"да бъде открит\n" diff --git a/po/bn.gmo b/po/bn.gmo new file mode 100644 index 0000000..4b196b9 Binary files /dev/null and b/po/bn.gmo differ diff --git a/po/bn.po b/po/bn.po new file mode 100644 index 0000000..6d82c22 --- /dev/null +++ b/po/bn.po @@ -0,0 +1,1273 @@ +# Bengali translation of libwnck +# Copyright (C) 2002, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# +# Jamil Ahmed , 2003. +# Mahay Alam Khan , 2005. +# Samia Niamatullah , 2005. +# Runa Bhattacharjee , 2007. +# Sankarshan Mukhopadhyay , 2008. +# Runa Bhattacharjee , 2008, 2009. +# Maruf Ovee , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&component=general\n" +"POT-Creation-Date: 2009-08-31 07:15+0000\n" +"PO-Revision-Date: 2009-08-31 10:23+0700\n" +"Last-Translator: Maruf Ovee \n" +"Language-Team: Bengali \n" +"Language: bn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "নামহীন অ্যাপ্লিকেশন" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "কর্মক্ষেত্র পরিবর্তন ব্যবস্থা" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "কর্মক্ষেত্র পরিবর্তনের জন্য ব্যবহৃত সামগ্রী" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "কর্মক্ষেত্র %s-এ পরিবর্তন করতে এই স্থানে ক্লিক করুন" + +#: ../libwnck/pager.c:1910 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" তে ক্লিক করুন টানার জন্য" + +#: ../libwnck/pager.c:1913 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "বর্তমান কর্মক্ষেত্রে: \"%s\"" + +#: ../libwnck/pager.c:1918 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "%s-এ পরিবর্তন করতে এই স্থানে ক্লিক করুন" + +#: ../libwnck/selector.c:1172 +msgid "No Windows Open" +msgstr "কোনো উইন্ডো বর্তমানে খোলা নেই" + +#: ../libwnck/selector.c:1225 +msgid "Window Selector" +msgstr "উইন্ডো নির্বাচন ব্যবস্থা" + +#: ../libwnck/selector.c:1226 +msgid "Tool to switch between windows" +msgstr "উইন্ডো পরিবর্তন করতে ব্যবহৃত সামগ্রী" + +#: ../libwnck/tasklist.c:729 +msgid "Window List" +msgstr "উইন্ডো তালিকা" + +#: ../libwnck/tasklist.c:730 +msgid "Tool to switch between visible windows" +msgstr "দৃশ্যমান উইন্ডোর মধ্যে পরিবর্তন করতে ব্যবহৃত সামগ্রী" + +#: ../libwnck/tasklist.c:3018 +msgid "Mi_nimize All" +msgstr "সব আড়াল করুন (_n)" + +#: ../libwnck/tasklist.c:3029 +msgid "Un_minimize All" +msgstr "সব প্রদর্শন করুন (_m)" + +#: ../libwnck/tasklist.c:3037 +msgid "Ma_ximize All" +msgstr "সব বড় করুন (_x)" + +#: ../libwnck/tasklist.c:3048 +msgid "_Unmaximize All" +msgstr "সব স্বাভাবিক মাপে প্রদর্শন করুন (_U)" + +#: ../libwnck/tasklist.c:3060 +msgid "_Close All" +msgstr "সব বন্ধ করুন (_C)" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "NROWS সারি ব্যবহার করা হবে (_R)" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "N_ROWS" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "শুধুমাত্র বর্তমান কর্মক্ষেত্র প্রদর্শন করা হবে" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "Use RTL as default direction" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "কর্মক্ষেত্রের বিষয়বস্তুর পরিবর্তে কর্মক্ষেত্রের নাম প্রদর্শন করা হবে" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "Use a vertical orientation" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/test-selector.c:13 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "কর্মতালিকায় উইন্ডো প্রদর্শন করা হবে না" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "সবসময় উইন্ডোসমূহ দলভুক্ত্র করুন" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "উইন্ডো কখনো দলভুক্ত করা হবে না" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "সব কর্মক্ষেত্রের উইন্ডো প্রদর্শন করা হবে" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "স্বচ্ছ প্রদর্শন সক্রিয় করা হবে" + +#: ../libwnck/window-action-menu.c:417 +msgid "Unmi_nimize" +msgstr "বড় করুন (_n)" + +#: ../libwnck/window-action-menu.c:424 +msgid "Mi_nimize" +msgstr "আড়াল করুন (_n)" + +#: ../libwnck/window-action-menu.c:432 +msgid "Unma_ximize" +msgstr "স্বাভাবিক মাপ (_x)" + +#: ../libwnck/window-action-menu.c:439 +msgid "Ma_ximize" +msgstr "বড় করুন (_x)" + +#: ../libwnck/window-action-menu.c:746 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "কর্মক্ষেত্র %d" + +#: ../libwnck/window-action-menu.c:755 ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace 1_0" +msgstr "কর্মক্ষেত্র 1_0" + +#: ../libwnck/window-action-menu.c:757 ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace %s%d" +msgstr "কর্মক্ষেত্র %1$s%2$d" + +#: ../libwnck/window-action-menu.c:1047 +msgid "_Move" +msgstr "স্থানান্তরণ (_M)" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Resize" +msgstr "মাপ পরিবর্তন (_R)" + +#: ../libwnck/window-action-menu.c:1063 +msgid "Always On _Top" +msgstr "সর্বদা উপরে (_T)" + +#: ../libwnck/window-action-menu.c:1071 +msgid "_Always on Visible Workspace" +msgstr "দৃশ্যমান কর্মক্ষেত্রে সর্বদা উপস্থিত (_A)" + +#: ../libwnck/window-action-menu.c:1076 +msgid "_Only on This Workspace" +msgstr "শুধুমাত্র বর্তমান কর্মক্ষেত্রে (_O)" + +#: ../libwnck/window-action-menu.c:1083 +msgid "Move to Workspace _Left" +msgstr "বামদিকের কর্মক্ষেত্রে স্থানান্তর করুন (_L)" + +#: ../libwnck/window-action-menu.c:1089 +msgid "Move to Workspace R_ight" +msgstr "ডান দিকের কর্মক্ষেত্রে স্থানান্তর করুন (_i)" + +#: ../libwnck/window-action-menu.c:1095 +msgid "Move to Workspace _Up" +msgstr "উপরের কর্মক্ষেত্রে স্থানান্তরণ (_U)" + +#: ../libwnck/window-action-menu.c:1101 +msgid "Move to Workspace _Down" +msgstr "নীচের কর্মক্ষেত্রে স্থানান্তরণ (_D)" + +#: ../libwnck/window-action-menu.c:1104 +msgid "Move to Another _Workspace" +msgstr "পৃথক কর্মক্ষেত্রে স্থানান্তরণ (_W)" + +#: ../libwnck/window-action-menu.c:1124 +msgid "_Close" +msgstr "বন্ধ করুন (_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "নামবিহীন উইন্ডো" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত উইন্ডোর X window ID" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "যে অ্যাপ্লিকেশন পরীক্ষা করা হবে সেটির গ্রুপ প্রমূখের X window ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "যে ক্লাস গ্রুপ পরীক্ষা করা হবে সেটির ক্লাস রিসোর্স" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত কর্মক্ষেত্রের NUMBER" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত পর্দার NUMBER" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window-র অ্যালায়েস" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"অ্যাপ্লিকেশন/ক্লাস দল/কর্মক্ষেত্র/পর্দায় উপস্থিত উইন্ডোর তালিকা নির্মাণ করুন (ফলাফলের " +"বিন্যাস: \"XID: উইন্ডোর নাম\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"পর্দায় কর্মক্ষেত্রের তালিকা নির্মাণ করুন (ফলাফলের বিন্যাস: \"সংখ্যা: কর্মক্ষেত্রের নাম" +"\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "স্ক্রিনের কর্মক্ষেত্রের সংখ্যাকে NUMBER এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "স্ক্রিনের কর্মক্ষেত্রের বিন্যাসকে NUMBER সারি ব্যবহার করতে পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "স্ক্রিনের কর্মক্ষেত্রের বিন্যাসকে NUMBER কলাম ব্যবহার করতে পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "ডেস্কটপ প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "ডেস্কটপ প্রদর্শন বন্ধ করা হবে" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "বর্তমান ওয়ার্কস্পেসের দৃষ্টিপটভূমিকে X coordinate X এ সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "বর্তমান ওয়ার্কস্পেসের দৃষ্টিপটভূমিকে Y coordinate Y এ সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "উইন্ডো সর্বনিম্ন মাপ নির্ধারণ করুন" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "উইন্ডো সর্বনিম্ন মাপ থেকে বড় করুন" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "উইন্ডো সর্বোচ্চ মাপে নির্ধারণ করুন" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "উইন্ডো সর্বোচ্চ মাপ থেকে ছোট করুন" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "উইন্ডোকে অনুভূমিক ভাবে সর্বাধিক মাপে করুন" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "উইন্ডোকে অনুভূমিক ভাবে সর্বাধিক মাপ থেকে সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "উইন্ডোকে উল্লম্ব ভাবে সর্বাধিক মাপের করুন" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "উইন্ডোকে উল্লম্ব ভাবে সর্বাধিক মাপ থেকে সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "কী-বোর্ডের মাধ্যমে উইন্ডো স্থানান্তরণ আরম্ভ করুন" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "কী-বোর্ডের মাধ্যমে উইন্ডোর মাপ পরিবর্তন আরম্ভ করুন" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "উইন্ডো সক্রিয় করুন" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "উইন্ডো বন্ধ করুন" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "সম্পূর্ণ পর্দাজুড়ে উইন্ডো প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "সম্পূর্ণ পর্দাজুড়ে উইন্ডো প্রদর্শন বন্ধ করা হবে" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "উইন্ডোটি সর্বদা উপরে থাকবে" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "উইন্ডোটি সর্বদা উপরে স্থাপিত থাকবে না" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "উইন্ডোটি অন্যান্য উইন্ডোর নীচে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "উইন্ডোটি অন্যান্য উইন্ডোর নীচে স্থাপিত হবে না" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "উইন্ডোটি ছায়ান্বিত করা হবে" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "উইন্ডো থেকে ছায়া সরানো হবে" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "উইন্ডোকে দৃষ্টিপটভূমিতে একটি নির্দিষ্ট স্থানে রাখুন" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "উইন্ডোকে দৃষ্টিপটভূমিতে কোন নির্দিষ্ট স্থানে রাখবেন না" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "কর্মক্ষেত্র অদলবদলকারি উইন্ডোকে প্রদর্শন হওয়া থেকে বন্ধ করুন" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "কর্মক্ষেত্র অদলবদলকারিতে উইন্ডোকে প্রদর্শন করুন" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "উইন্ডোকে কার্যতালিকাতে প্রদর্শন হওয়া বন্ধ করুন" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "কার্যতালিকাতে উইন্ডো প্রদর্শন হতে দিন" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "উইন্ডোটি সব কর্মক্ষেত্রে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "উইন্ডোটি শুধুমাত্র বর্তমানে কর্মক্ষেত্রে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "উইন্ডোকে NUMBER কর্মক্ষেত্রে সরিয়ে নিন (প্রথম কর্মক্ষেত্র 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "উইন্ডোর X স্থানাংক X-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "উইন্ডোর Y স্থানাংক Y-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "উইন্ডোর প্রস্থ WIDTH-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "উইন্ডোর উচ্চতা HEIGHT-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"উইন্ডোর প্রকারকে TYPE এ পরিবর্তন করুন (বিধিসন্মত মান: নর্মাল, ডেস্কটপ, ডক, ডায়লগ, " +"টুলবার, মেনু ইউটিলিটি, স্প্ল্যাস)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "কর্মক্ষেত্রের নাম NAME এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "কর্মক্ষেত্র সক্রিয় করুন" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "অকার্যকর মান \"%1$s\", --%2$s-এর জন্য" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: পর্দা %1$d-এর সাথে আদানপ্রদান হওয়া উচিত কিন্তু --%2" +"$s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: পর্দা %d-এর উইন্ডো অথবা কর্মক্ষেত্র ব্যবহার করা উচিত, " +"কিন্তু --%s ব্যবহার করা হয়েছে\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: কর্মক্ষেত্র %d-এর সাথে আদানপ্রদান হওয়া উচিত কিন্তু --%" +"s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: কর্মক্ষেত্র %d-এর উইন্ডোগুলির তালিকা প্রদর্শিত হওয়া " +"উচিত কিন্তু --%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: একটি অ্যাপ্লিকেশনের সাথে আদানপ্রদান হওয়া উচিত কিন্তু " +"--%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: একটি অ্যাপ্লিকেশনের উইন্ডোর তালিকা প্রস্তুত হওয়া উচিত " +"কিন্তু --%s ব্যবহৃত হয়েছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: \"%1$s\" শ্রেণীর সাথে আদানপ্রদান হওয়া উচিত কিন্তু --%" +"2$s ব্যবহৃত হয়েছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: \"%1$s\" শ্রেণীভুক্ত উইন্ডোর তালিকা প্রস্তুত উচিত কিন্তু " +"--%2$s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত অপশন উপস্থিত রয়েছে: উইন্ডোর সাথে আদানপ্রদান হওয়া উচিত কিন্তু --%s ব্যবহৃত " +"হয়েছে\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "দ্বন্দ্বযুক্ত অপশন উপস্থিত: --%1$s ও --%2$s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"অকার্যকর আর্গুমেন্ট \"%1$d\", --%2$s-এর সাথে ব্যবহৃত হয়েছে: আর্গুমেন্টের মান শূণ্যের " +"অধিক হওয়া বাধ্যতামূলক\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"অবৈধ আর্গুমেন্ট \"%1$d\", --%2$s-এর সাথে ব্যবহৃত হয়েছে: আর্গুমেন্টের মান শূণ্যের অধিক " +"হওয়া উচিত\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "দ্বন্দ্বযুক্ত অপশন উপস্থিত: --%1$s অথবা --%2$s ও --%3$s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" +"অকার্যকর আর্গুমেন্ট \"%1$s\", --%2$s-এর সাথে ব্যবহৃত হয়েছে, বৈধ মান হল: %3$s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"স্ক্রিনে কর্মক্ষেত্রের বিন্যাস পরিবর্তন করা সম্ভব নয় কারণ বিন্যাস পূর্বে ব্যবহৃত হয়েছে\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "বর্তমান কর্মক্ষেত্রে দৃষ্টিপটভূমি নেই এই কারণে দৃষ্টিপটভূমি সরিয়ে রাখা সম্ভব নয়\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "বর্তমানে কোন কর্মক্ষেত্র নেই তাই দৃষ্টিপটভূমি সরিয়ে আনা সম্ভব নয়\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "কর্ম সঞ্চালনের অনুমতি\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "কর্মক্ষেত্র %d অবস্থিত নয় তাই উইন্ডো সরিয়ে আনা সম্ভব নয়\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%1$lu: %2$s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%1$d: %2$s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "পর্দা সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "জ্যামিতি (প্রস্থ, উচ্চতা): %1$d, %2$d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "কর্মক্ষেত্রের সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "কর্মক্ষেত্রের বিন্যাস (সারি, কলাম, দিশা): %1$d, %2$d, %3$s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "উইন্ডো পরিচালন ব্যবস্থা: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1445 +#, c-format +msgid "%d (\"%s\")" +msgstr "%1$d (\"%2$s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "শূণ্য" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "সক্রিয় কর্মক্ষেত্র: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%1$lu (%2$s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "শূণ্যর" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "সক্রিয় উইন্ডো: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ডেস্কটপ প্রদর্শন: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "কর্মক্ষেত্রের নাম: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "কর্মক্ষেত্র সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1461 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "পর্দার উপর: %d (উইন্ডো পরিচালন ব্যবস্থা: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ভিউ-পোর্টের অবস্থান (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "বিন্যাসের মধ্যে অবস্থান (সারি, কলাম): %1$d, %2$d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "বামদিকের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "ডানদিকের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "উপরের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "নীচের প্রতিবেশি: %s\n" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1350 +#, c-format +msgid "Resource Class: %s\n" +msgstr "রিসোর্সের শ্রেণী: %s\n" + +#: ../libwnck/wnckprop.c:1352 +#, c-format +msgid "Group Name: %s\n" +msgstr "দলের নাম: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "নির্ধারিত" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +#, c-format +msgid "Icons: %s\n" +msgstr "আইকন: %s\n" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1403 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "উইন্ডোর সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1377 ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Name: %s\n" +msgstr "নাম: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1378 ../libwnck/wnckprop.c:1432 +#, c-format +msgid "Icon Name: %s\n" +msgstr "আইকনের নাম: %s\n" + +#: ../libwnck/wnckprop.c:1393 ../libwnck/wnckprop.c:1516 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "শূণ্য" + +#: ../libwnck/wnckprop.c:1401 +#, c-format +msgid "Startup ID: %s\n" +msgstr "প্রারম্ভিক ID: %s\n" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "সকল কর্মক্ষেত্র" + +#: ../libwnck/wnckprop.c:1453 +#, c-format +msgid "On Workspace: %s\n" +msgstr "চিহ্নিত কর্মক্ষেত্রে: %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "স্বাভাবিক উইন্ডো" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "ডেস্কটপ" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "ডক করা হবে অথবা প্যানেল করা হবে" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "ডায়লগ উইন্ডো" + +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "টিয়ার-অফ টুল-বার" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "টিয়ার-অফ মেনু" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "কার্যকারিতা সম্বলিত উইন্ডো" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "স্প্ল্যাশ স্ক্রিন" + +#: ../libwnck/wnckprop.c:1494 +#, c-format +msgid "Window Type: %s\n" +msgstr "উইন্ডোর ধরন: %s\n" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "জ্যামিতি (x, y, প্রস্থ, উচ্চতা): %1$d, %2$d, %3$d, %4$d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1507 +#, c-format +msgid "Class Group: %s\n" +msgstr "শ্রেণী সংকলন: %s\n" + +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "Session ID: %s\n" +msgstr "সেশন ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "সংকলনের মূল উইন্ডো: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Transient for: %lu\n" +msgstr "চিহ্নিত উইন্ডোর জন্য এটি সাময়িক: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1552 ../libwnck/wnckprop.c:1600 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "সর্বনিম্ন মাপে" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "সর্বোচ্চ মাপে" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "ছায়াবৃত" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "পিন করা" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "স্টিকি" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "উপরে" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "নীচে" + +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "সম্পূর্ণ পর্দাজুড়ে" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "নিরীক্ষণ আবশ্যক" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "পেজার উপেক্ষা করা হবে" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "চলমান অ্যাপ্লিকেশনের তালিকা উপেক্ষা করুন" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "স্বাভাবিক" + +#: ../libwnck/wnckprop.c:1588 +#, c-format +msgid "State: %s\n" +msgstr "অবস্থা: %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "স্থানান্তরণ" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "মাপ পরিবর্তন" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "ছায়ন্বিত" + +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "ছায়াবিহীন" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "আটক করা হবে" + +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "আটক করা হবে না" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে" + +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে না" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে" + +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে না" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "কর্মক্ষেত্র পরিবর্তন" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "পিন করা হবে" + +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "পিন করা হবে না" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "সর্বনিম্ন মাপে" + +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "বড় করুন" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "সর্বোচ্চ মাপ" + +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "স্বাভাবিক মাপ " + +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "সম্পূর্ণ পর্দাজুড়ে প্রদর্শন পরিবর্তন" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "বন্ধ করুন" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "make above" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "unmake above" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "make below" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "unmake below" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "কোনো কাজ সঞ্চালন সম্ভব নয়" + +#: ../libwnck/wnckprop.c:1647 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "সম্ভাব্য কাজ: %s\n" + +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"EWMH-র নির্দেশাবলী অনুযায়ী পর্দা/কর্মক্ষেত্রে/উইন্ডোর বৈশিষ্ট্য মুদ্রণ অথবা পরিবর্তন করুন " +"অথবা এর সাথে ইন্টারেক্ট করুন।\n" +"এই নির্দেশাবলী সম্পর্কে অধিক বিবরণ জানতে দেখুন:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "উইন্ডো অথবা কর্মক্ষেত্রের তালিকা প্রদর্শনের অপশন" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "উইন্ডো অথবা কর্মক্ষেত্রের তালিকানির্মাণের অপশন প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "উইন্ডোর বৈশিষ্ট্য পরিবর্তনের অপশন" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "উইন্ডোর বৈশিষ্ট্য পরিবর্তনের অপশন প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "কর্মক্ষেত্রের বৈশিষ্ট্য পরিবর্তনের অপশন" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "কর্মক্ষেত্রের বৈশিষ্ট্য পরিবর্তনের অপশন প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "পর্দার বৈশিষ্ট্য পরিবর্তনের অপশন" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "পর্দার বৈশিষ্ট্য পরিবর্তনের অপশন প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1872 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "আর্গুমেন্ট পার্স করতে সমস্যা: %s\n" + +#: ../libwnck/wnckprop.c:1895 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "পর্দা %d-এর সাথে যোগাযোগ করতে ব্যর্থ: এই পর্দাটি উপস্থিত নেই\n" + +#: ../libwnck/wnckprop.c:1951 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "কর্মক্ষেত্র %d-এর সাথে যোগাযোগ করতে ব্যর্থ: এই কর্মক্ষেত্রটি উপস্থিত নেই\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1975 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"শ্রেণী সংকলন \"%s\"-এর সাথে যোগাযোগ করতে ব্যর্থ: এই শ্রেণী সংকলনটি উপস্থিত নেই\n" + +#: ../libwnck/wnckprop.c:1998 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu নির্ধারিত দলের প্রধান উইন্ডো সহ অ্যাপ্লিকেশনের সাথে যোগাযোগ করতে ব্যর্থ: " +"অ্যাপ্লিকেশন পাওয়া যায়নি\n" + +#: ../libwnck/wnckprop.c:2021 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu নির্ধারিত উইন্ডোর সাথে যোগাযোগ করতে ব্যর্থ: উইন্ডো পাওয়া যায়নি\n" diff --git a/po/bn_IN.gmo b/po/bn_IN.gmo new file mode 100644 index 0000000..7ccbacb Binary files /dev/null and b/po/bn_IN.gmo differ diff --git a/po/bn_IN.po b/po/bn_IN.po new file mode 100644 index 0000000..530984e --- /dev/null +++ b/po/bn_IN.po @@ -0,0 +1,1270 @@ +# translation of bn_IN.po to Bengali INDIA +# Bengali India translation of libwnck +# Copyright (C) 2002, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# +# Jamil Ahmed , 2003. +# Mahay Alam Khan , 2005. +# Samia Niamatullah , 2005. +# Runa Bhattacharjee , 2007. +# Sankarshan Mukhopadhyay , 2008. +# Runa Bhattacharjee , 2008, 2009, 2014. +msgid "" +msgstr "" +"Project-Id-Version: bn_IN\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-09-23 21:54+0000\n" +"PO-Revision-Date: 2014-09-24 11:00+0000\n" +"Last-Translator: \n" +"Language-Team: American English \n" +"Language: bn_IN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" +"X-Generator: Lokalize 1.5\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "নামহীন অ্যাপ্লিকেশন" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "কর্মক্ষেত্র পরিবর্তন ব্যবস্থা" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "কর্মক্ষেত্র পরিবর্তনের জন্য ব্যবহৃত সামগ্রী" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "কর্মক্ষেত্র %s-এ পরিবর্তন করতে এই স্থানে ক্লিক করুন" + +#: ../libwnck/pager.c:2186 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" তে ক্লিক করুন টানার জন্য" + +#: ../libwnck/pager.c:2189 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "বর্তমান কর্মক্ষেত্রে: \"%s\"" + +#: ../libwnck/pager.c:2194 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "%s-এ পরিবর্তন করতে এই স্থানে ক্লিক করুন" + +#: ../libwnck/selector.c:1182 +msgid "No Windows Open" +msgstr "কোনো উইন্ডো বর্তমানে খোলা নেই" + +#: ../libwnck/selector.c:1238 +msgid "Window Selector" +msgstr "উইন্ডো নির্বাচন ব্যবস্থা" + +#: ../libwnck/selector.c:1239 +msgid "Tool to switch between windows" +msgstr "উইন্ডো পরিবর্তন করতে ব্যবহৃত সামগ্রী" + +#: ../libwnck/tasklist.c:592 +msgid "Window List" +msgstr "উইন্ডো তালিকা" + +#: ../libwnck/tasklist.c:593 +msgid "Tool to switch between visible windows" +msgstr "দৃশ্যমান উইন্ডোর মধ্যে পরিবর্তন করতে ব্যবহৃত সামগ্রী" + +#: ../libwnck/tasklist.c:2950 +msgid "Mi_nimize All" +msgstr "সব আড়াল করুন (_n)" + +#: ../libwnck/tasklist.c:2961 +msgid "Un_minimize All" +msgstr "সব প্রদর্শন করুন (_m)" + +#: ../libwnck/tasklist.c:2969 +msgid "Ma_ximize All" +msgstr "সব বড় করুন (_x)" + +#: ../libwnck/tasklist.c:2980 +msgid "_Unmaximize All" +msgstr "সব স্বাভাবিক মাপে প্রদর্শন করুন (_U)" + +#: ../libwnck/tasklist.c:2992 +msgid "_Close All" +msgstr "সব বন্ধ করুন (_C)" + +#: ../libwnck/window-action-menu.c:396 +msgid "Unmi_nimize" +msgstr "বড় করুন (_n)" + +#: ../libwnck/window-action-menu.c:403 +msgid "Mi_nimize" +msgstr "আড়াল করুন (_n)" + +#: ../libwnck/window-action-menu.c:411 +msgid "Unma_ximize" +msgstr "স্বাভাবিক মাপ (_x)" + +#: ../libwnck/window-action-menu.c:418 +msgid "Ma_ximize" +msgstr "বড় করুন (_x)" + +#: ../libwnck/window-action-menu.c:725 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "কর্মক্ষেত্র %d" + +#: ../libwnck/window-action-menu.c:734 ../libwnck/window-action-menu.c:881 +#, c-format +msgid "Workspace 1_0" +msgstr "কর্মক্ষেত্র 1_0" + +#: ../libwnck/window-action-menu.c:736 ../libwnck/window-action-menu.c:883 +#, c-format +msgid "Workspace %s%d" +msgstr "কর্মক্ষেত্র %s%d" + +#: ../libwnck/window-action-menu.c:1025 +msgid "_Move" +msgstr "স্থানান্তরণ (_M)" + +#: ../libwnck/window-action-menu.c:1032 +msgid "_Resize" +msgstr "মাপ পরিবর্তন (_R)" + +#: ../libwnck/window-action-menu.c:1041 +msgid "Always On _Top" +msgstr "সর্বদা উপরে (_T)" + +#: ../libwnck/window-action-menu.c:1049 +msgid "_Always on Visible Workspace" +msgstr "দৃশ্যমান কর্মক্ষেত্রে সর্বদা উপস্থিত (_A)" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Only on This Workspace" +msgstr "শুধুমাত্র বর্তমান কর্মক্ষেত্রে (_O)" + +#: ../libwnck/window-action-menu.c:1061 +msgid "Move to Workspace _Left" +msgstr "বাঁদিকের কর্মক্ষেত্রে স্থানান্তর করুন (_L)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "Move to Workspace R_ight" +msgstr "ডান দিকের কর্মক্ষেত্রে স্থানান্তর করুন (_i)" + +#: ../libwnck/window-action-menu.c:1073 +msgid "Move to Workspace _Up" +msgstr "উপরের কর্মক্ষেত্রে স্থানান্তরণ (_U)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Down" +msgstr "নীচের কর্মক্ষেত্রে স্থানান্তরণ (_D)" + +#: ../libwnck/window-action-menu.c:1082 +msgid "Move to Another _Workspace" +msgstr "পৃথক কর্মক্ষেত্রে স্থানান্তরণ (_W)" + +#: ../libwnck/window-action-menu.c:1102 +msgid "_Close" +msgstr "বন্ধ করুন (_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "নামবিহীন উইন্ডো" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত উইন্ডোর X window ID" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "যে অ্যাপ্লিকেশন পরীক্ষা করা হবে সেটির গ্রুপ প্রমূখের X window ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "যে ক্লাস গ্রুপ পরীক্ষা করা হবে সেটির ক্লাস রিসোর্স" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত কর্মক্ষেত্রের NUMBER" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "পরীক্ষা অথবা পরিবর্তনের জন্য চিহ্নিত পর্দার NUMBER" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "--window-র অ্যালায়েস" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"অ্যাপ্লিকেশন/ক্লাস দল/কর্মক্ষেত্র/পর্দায় উপস্থিত উইন্ডোর তালিকা নির্মাণ করুন " +"(ফলাফলের " +"বিন্যাস: \"XID: উইন্ডোর নাম\")" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"পর্দায় কর্মক্ষেত্রের তালিকা নির্মাণ করুন (ফলাফলের বিন্যাস: \"সংখ্যা: " +"কর্মক্ষেত্রের নাম" +"\")" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "স্ক্রিনের কর্মক্ষেত্রের সংখ্যাকে NUMBER এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"স্ক্রিনের কর্মক্ষেত্রের বিন্যাসকে NUMBER সারি ব্যবহার করতে পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"স্ক্রিনের কর্মক্ষেত্রের বিন্যাসকে NUMBER কলাম ব্যবহার করতে পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "ডেস্কটপ প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "ডেস্কটপ প্রদর্শন বন্ধ করা হবে" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "বর্তমান ওয়ার্কস্পেসের দৃষ্টিপটভূমিকে X coordinate X এ সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "বর্তমান ওয়ার্কস্পেসের দৃষ্টিপটভূমিকে Y coordinate Y এ সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "উইন্ডো সর্বনিম্ন মাপ নির্ধারণ করুন" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "উইন্ডো সর্বনিম্ন মাপ থেকে বড় করুন" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "উইন্ডো সর্বোচ্চ মাপে নির্ধারণ করুন" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "উইন্ডো সর্বোচ্চ মাপ থেকে ছোট করুন" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "উইন্ডোকে অনুভূমিক ভাবে সর্বাধিক মাপে করুন" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "উইন্ডোকে অনুভূমিক ভাবে সর্বাধিক মাপ থেকে সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "উইন্ডোকে উল্লম্ব ভাবে সর্বাধিক মাপের করুন" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "উইন্ডোকে উল্লম্ব ভাবে সর্বাধিক মাপ থেকে সরিয়ে নিন" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "কি-বোর্ডের মাধ্যমে উইন্ডো স্থানান্তরণ আরম্ভ করুন" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "কি-বোর্ডের মাধ্যমে উইন্ডোর মাপ পরিবর্তন আরম্ভ করুন" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "উইন্ডো সক্রিয় করুন" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "উইন্ডো বন্ধ করুন" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "সম্পূর্ণ পর্দাজুড়ে উইন্ডো প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "সম্পূর্ণ পর্দাজুড়ে উইন্ডো প্রদর্শন বন্ধ করা হবে" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "উইন্ডোটি সর্বদা উপরে থাকবে" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "উইন্ডোটি সর্বদা উপরে স্থাপিত থাকবে না" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "উইন্ডোটি অন্যান্য উইন্ডোর নীচে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "উইন্ডোটি অন্যান্য উইন্ডোর নীচে স্থাপিত হবে না" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "উইন্ডোটি ছায়ান্বিত করা হবে" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "উইন্ডো থেকে ছায়া সরানো হবে" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "উইন্ডোকে দৃষ্টিপটভূমিতে একটি নির্দিষ্ট স্থানে রাখুন" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "উইন্ডোকে দৃষ্টিপটভূমিতে কোন নির্দিষ্ট স্থানে রাখবেন না" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "কর্মক্ষেত্র অদলবদলকারি উইন্ডোকে প্রদর্শন হওয়া থেকে বন্ধ করুন" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "কর্মক্ষেত্র অদলবদলকারিতে উইন্ডোকে প্রদর্শন করুন" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "উইন্ডোকে টাস্কতালিকাতে প্রদর্শন হওয়া বন্ধ করুন" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "টাস্কতালিকাতে উইন্ডো প্রদর্শন হতে দিন" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "উইন্ডোটি সব কর্মক্ষেত্রে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "উইন্ডোটি শুধুমাত্র বর্তমানে কর্মক্ষেত্রে প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "উইন্ডোকে NUMBER কর্মক্ষেত্রে সরিয়ে নিন (প্রথম কর্মক্ষেত্র 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "উইন্ডোর X কো-ওরডিনেট X-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "উইন্ডোর Y কো-ওরডিনেট Y-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "উইন্ডোর প্রস্থ WIDTH-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "উইন্ডোর উচ্চতা HEIGHT-এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"উইন্ডোর প্রকারকে TYPE এ পরিবর্তন করুন (বিধিসন্মত মান: নর্মাল, ডেস্কটপ, ডক, " +"ডায়লগ, " +"টুলবার, মেনু ইউটিলিটি, স্প্ল্যাস)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "কর্মক্ষেত্রের নাম NAME এ পরিবর্তন করুন" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "কর্মক্ষেত্র সক্রিয় করুন" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "অবৈধ মান \"%s\", --%s-র জন্য" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: পর্দা %d-র সাথে আদানপ্রদান হওয়া উচিত " +"কিন্তু --%s " +"ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: পর্দা %d-র উইন্ডো অথবা কর্মক্ষেত্র " +"ব্যবহার করা উচিত, " +"কিন্তু --%s ব্যবহার করা হয়েছে\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: কর্মক্ষেত্র %d-র সাথে আদানপ্রদান হওয়া " +"উচিত কিন্তু --" +"%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: কর্মক্ষেত্র %d-র উইন্ডোগুলির তালিকা " +"প্রদর্শিত হওয়া " +"উচিত কিন্তু --%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: একটি অ্যাপ্লিকেশনের সাথে আদানপ্রদান হওয়া " +"উচিত কিন্তু " +"--%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: একটি অ্যাপ্লিকেশনের উইন্ডোর তালিকা " +"প্রস্তুত হওয়া উচিত " +"কিন্তু --%s ব্যবহৃত হয়েছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: \"%s\" শ্রেণীর সাথে আদানপ্রদান হওয়া উচিত " +"কিন্তু --" +"%s ব্যবহৃত হয়েছে\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: \"%s\" শ্রেণীভুক্ত উইন্ডোর তালিকা " +"প্রস্তুত উচিত কিন্তু --" +"%s ব্যবহৃত হয়েছে\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"দ্বন্দ্বযুক্ত বিকল্প উপস্থিত রয়েছে: উইন্ডোর সাথে আদানপ্রদান হওয়া উচিত কিন্তু " +"--%s ব্যবহৃত " +"হয়েছে\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "দ্বন্দ্বযুক্ত বিকল্প উপস্থিত: --%s ও --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"অবৈধ আর্গুমেন্ট \"%d\", --%s-র সাথে ব্যবহৃত হয়েছে: আর্গুমেন্টের মান শূণ্যের " +"অধিক হওয়া " +"বাধ্যতামূলক\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"অবৈধ আর্গুমেন্ট \"%d\", --%s-র সাথে ব্যবহৃত হয়েছে: আর্গুমেন্টের মান শূণ্যের " +"অধিক হওয়া " +"উচিত\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "দ্বন্দ্বযুক্ত বিকল্প উপস্থিত: --%s অথবা --%s ও --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "অবৈধ আর্গুমেন্ট \"%s\", --%s-র সাথে ব্যবহৃত হয়েছে, বৈধ মান হল: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"স্ক্রিনে কর্মক্ষেত্রের বিন্যাস পরিবর্তন করা সম্ভব নয় কারণ বিন্যাস পূর্বে " +"ব্যবহৃত হয়েছে\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"বর্তমান কর্মক্ষেত্রে দৃষ্টিপটভূমি নেই এই কারণে দৃষ্টিপটভূমি সরিয়ে রাখা সম্ভব " +"নয়\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "বর্তমানে কোন কর্মক্ষেত্র নেই তাই দৃষ্টিপটভূমি সরিয়ে আনা সম্ভব নয়\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "কর্ম সঞ্চালনের অনুমতি\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "কর্মক্ষেত্র %d অবস্থিত নয় তাই উইন্ডো সরিয়ে আনা সম্ভব নয়\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "পর্দা সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "জ্যামিতি (প্রস্থ, উচ্চতা): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "কর্মক্ষেত্রের সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "কর্মক্ষেত্রের বিন্যাস (সারি, কলাম, দিশা): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "উইন্ডো পরিচালন ব্যবস্থা: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "শূণ্য" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "সক্রিয় কর্মক্ষেত্র: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "শূণ্যর" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "সক্রিয় উইন্ডো: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ডেস্কটপ প্রদর্শন: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "কর্মক্ষেত্রের নাম: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "কর্মক্ষেত্র সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "পর্দার উপর: %d (উইন্ডো পরিচালন ব্যবস্থা: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ভিউ-পোর্টের অবস্থান (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "বিন্যাসের মধ্যে অবস্থান (সারি, কলাম): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "বাঁদিকের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "ডানদিকের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "উপরের প্রতিবেশি: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "নীচের প্রতিবেশি: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Group ID: %s\n" +msgstr "শ্রেণী সংকলন অাইডি: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Group Name: %s\n" +msgstr "শ্রেণী সংকলন নাম: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "নির্ধারিত" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "আইকন: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "উইন্ডোর সংখ্যা: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "নাম: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "আইকনের নাম: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "শূণ্য" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "প্রারম্ভিক ID: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "সকল কর্মক্ষেত্র" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "চিহ্নিত কর্মক্ষেত্রে: %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "স্বাভাবিক উইন্ডো" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "ডেস্কটপ" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "আটক করা হবে অথবা প্যানেল করা হবে" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "ডায়লগ উইন্ডো" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "টিয়ার-অফ টুল-বার" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "টিয়ার-অফ মেনু" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "কার্যকারিতা সম্বলিত উইন্ডো" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "স্প্ল্যাশ স্ক্রিন" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "উইন্ডোর ধরন: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "জ্যামিতি (x, y, প্রস্থ, উচ্চতা): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Instance: %s\n" +msgstr "শ্রেণী ইন্সট্যান্স: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "সেশান ID: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "ভূমিকা: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "সংকলনের মূল উইন্ডো: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "চিহ্নিত উইন্ডোর জন্য এটি সাময়িক: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "সর্বনিম্ন মাপে" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "সর্বোচ্চ মাপে" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "ছায়াবৃত" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "পিন করা" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "স্টিকি" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "উপরে" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "নীচে" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "সম্পূর্ণ পর্দাজুড়ে" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "নিরীক্ষণ আবশ্যক" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "পেজার উপেক্ষা করা হবে" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "চলমান অ্যাপ্লিকেশনের তালিকা উপেক্ষা করুন" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "স্বাভাবিক" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "অবস্থা: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "স্থানান্তরণ" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "মাপ পরিবর্তন" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "ছায়ন্বিত" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "ছায়াবিহীন" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "আটক করা হবে" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "আটক করা হবে না" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "অনুভূমিক দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে না" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "উলম্ব দিশায় সর্বাধিক মাপ প্রয়োগ করা হবে না" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "কর্মক্ষেত্র পরিবর্তন" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "পিন করা হবে" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "পিন করা হবে না" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "সর্বনিম্ন মাপে" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "বড় করুন" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "সর্বোচ্চ মাপ" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "স্বাভাবিক মাপ " + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "সম্পূর্ণ পর্দাজুড়ে প্রদর্শন পরিবর্তন" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "বন্ধ করুন" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "make above" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "unmake above" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "make below" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "unmake below" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "কোনো কর্ম সঞ্চালন সম্ভব নয়" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "সম্ভাব্য কর্ম: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"EWMH-র নির্দেশাবলী অনুযায়ী পর্দা/কর্মক্ষেত্রে/উইন্ডোর বৈশিষ্ট্য প্রিন্ট অথবা " +"পরিবর্তন " +"করুন অথবা এর সাথে ইন্টারেক্ট করুন।\n" +"এই নির্দেশাবলী সম্পর্কে অধিক বিবরণ জানতে দেখুন:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "উইন্ডো অথবা কর্মক্ষেত্রের তালিকা প্রদর্শনের বিকল্প" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "উইন্ডো অথবা কর্মক্ষেত্রের তালিকানির্মাণের বিকল্প প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "উইন্ডোর বৈশিষ্ট্য পরিবর্তনের বিকল্প" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "উইন্ডোর বৈশিষ্ট্য পরিবর্তনের বিকল্প প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "কর্মক্ষেত্রের বৈশিষ্ট্য পরিবর্তনের বিকল্প" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "কর্মক্ষেত্রের বৈশিষ্ট্য পরিবর্তনের বিকল্প প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "পর্দার বৈশিষ্ট্য পরিবর্তনের বিকল্প" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "পর্দার বৈশিষ্ট্য পরিবর্তনের বিকল্প প্রদর্শন করা হবে" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "আর্গুমেন্ট পার্স করতে সমস্যা: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "পর্দা %d-র সাথে ইন্টারেক্ট করতে ব্যর্থ: এই পর্দাটি উপস্থিত নেই\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"কর্মক্ষেত্র %d-র সাথে ইন্টারেক্ট করতে ব্যর্থ: এই কর্মক্ষেত্রটি উপস্থিত নেই\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"শ্রেণী সংকলন \"%s\"-র সাথে ইন্টারেক্ট করতে ব্যর্থ: এই শ্রেণী সংকলনটি উপস্থিত " +"নেই\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu নির্ধারিত দলের প্রধান উইন্ডো সহ অ্যাপ্লিকেশনের সাথে ইন্টারেক্ট করতে " +"ব্যর্থ: " +"অ্যাপ্লিকেশন পাওয়া যায়নি\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"XID %lu নির্ধারিত উইন্ডোর সাথে ইন্টারেক্ট করতে ব্যর্থ: উইন্ডো পাওয়া যায়নি\n" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "রিসোর্সের শ্রেণী: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "দলের নাম: %s\n" diff --git a/po/boldquot.sed b/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/po/boldquot.sed @@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“/g +s/”/”/g +s/‘/‘/g +s/’/’/g diff --git a/po/br.gmo b/po/br.gmo new file mode 100644 index 0000000..07fe422 Binary files /dev/null and b/po/br.gmo differ diff --git a/po/br.po b/po/br.po new file mode 100644 index 0000000..a38e6e1 --- /dev/null +++ b/po/br.po @@ -0,0 +1,1241 @@ +# Breton translation for libwnck +# Copyright (C) 2002-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# Denis , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&component=general\n" +"POT-Creation-Date: 2010-05-12 22:49+0000\n" +"PO-Revision-Date: 2010-05-26 22:19+0100\n" +"Last-Translator: Denis \n" +"Language-Team: Brenux \n" +"Language: br\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Arload disanv" + +#: ../libwnck/pager-accessible.c:338 +msgid "Workspace Switcher" +msgstr "Trec'haoler an tachennoù-labour" + +#: ../libwnck/pager-accessible.c:349 +msgid "Tool to switch between workspaces" +msgstr "" + +#: ../libwnck/pager-accessible.c:457 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "" + +#: ../libwnck/pager.c:1960 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "" + +#: ../libwnck/pager.c:1963 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "" + +#: ../libwnck/pager.c:1968 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "" + +#: ../libwnck/selector.c:1177 +msgid "No Windows Open" +msgstr "Prenestr digor ebet" + +#: ../libwnck/selector.c:1230 +msgid "Window Selector" +msgstr "" + +#: ../libwnck/selector.c:1231 +msgid "Tool to switch between windows" +msgstr "" + +#: ../libwnck/tasklist.c:733 +msgid "Window List" +msgstr "Roll ar prenestroù" + +#: ../libwnck/tasklist.c:734 +msgid "Tool to switch between visible windows" +msgstr "" + +#: ../libwnck/tasklist.c:3062 +msgid "Mi_nimize All" +msgstr "" + +#: ../libwnck/tasklist.c:3073 +msgid "Un_minimize All" +msgstr "" + +#: ../libwnck/tasklist.c:3081 +msgid "Ma_ximize All" +msgstr "" + +#: ../libwnck/tasklist.c:3092 +msgid "_Unmaximize All" +msgstr "" + +#: ../libwnck/tasklist.c:3104 +msgid "_Close All" +msgstr "_Serriñ an holl anezho" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "Diskouez an dachenn-labour a-vremañ" + +#: ../libwnck/test-pager.c:17 +#: ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/test-selector.c:13 +#: ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "" + +#: ../libwnck/window-action-menu.c:419 +msgid "Unmi_nimize" +msgstr "Divi_hanaat" + +#: ../libwnck/window-action-menu.c:426 +msgid "Mi_nimize" +msgstr "Bi_hanaat" + +#: ../libwnck/window-action-menu.c:434 +msgid "Unma_ximize" +msgstr "Div_rasaat" + +#: ../libwnck/window-action-menu.c:441 +msgid "Ma_ximize" +msgstr "B_rasaat" + +#: ../libwnck/window-action-menu.c:748 +#: ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Tachenn-labour %d" + +#: ../libwnck/window-action-menu.c:757 +#: ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace 1_0" +msgstr "Tachenn-labour 1_0" + +#: ../libwnck/window-action-menu.c:759 +#: ../libwnck/window-action-menu.c:906 +#, c-format +msgid "Workspace %s%d" +msgstr "Tachenn-labour %s%d" + +#: ../libwnck/window-action-menu.c:1049 +msgid "_Move" +msgstr "Di_lec'hiañ" + +#: ../libwnck/window-action-menu.c:1056 +msgid "_Resize" +msgstr "_Admentañ" + +#: ../libwnck/window-action-menu.c:1065 +msgid "Always On _Top" +msgstr "Dalc'hma_t a-raok" + +#: ../libwnck/window-action-menu.c:1073 +#, fuzzy +msgid "_Always on Visible Workspace" +msgstr "D_alc'hmat war an dachenn-labour hewel" + +#: ../libwnck/window-action-menu.c:1078 +msgid "_Only on This Workspace" +msgstr "War an dachenn-lab_our-mañ hepken" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace _Left" +msgstr "Kas d'an dachenn-labour a-_gleiz" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace R_ight" +msgstr "Kas d'an dachenn-labour a-_zehou" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Up" +msgstr "" + +#: ../libwnck/window-action-menu.c:1103 +msgid "Move to Workspace _Down" +msgstr "" + +#: ../libwnck/window-action-menu.c:1106 +msgid "Move to Another _Workspace" +msgstr "Kas d'un dachenn-labour _all" + +#: ../libwnck/window-action-menu.c:1126 +msgid "_Close" +msgstr "_Serriñ" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Prenestr disanv" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:139 +#: ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "RUMMAD" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 +#: ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NIVERENN" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:166 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Diskouez ar burev" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: ../libwnck/wnckprop.c:185 +#: ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: ../libwnck/wnckprop.c:190 +#: ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Bihanaat ar prenestr" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Divihanaat ar prenestr" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Brasaat ar prenestr" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Divrasaat ar prenestr" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Brasaat ar prenestr a-zremm" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Divrasaat ar prenestr a-zremm" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Brasaat ar prenestr a-serzh" + +#: ../libwnck/wnckprop.c:210 +#, fuzzy +msgid "Unmaximize vertically the window" +msgstr "Divrasaat ar prenestr a-serzh" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Gweredekaat ar prenestr" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Serriñ ar prenestr" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LEDANDER" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HIRDER" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "RIZH" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "ANV" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Gweredekaat an dachenn-labour" + +#: ../libwnck/wnckprop.c:384 +#: ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 +#: ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Gwerzh didalvoudek \"%s\" evit --%s" + +#: ../libwnck/wnckprop.c:501 +#: ../libwnck/wnckprop.c:520 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:533 +#: ../libwnck/wnckprop.c:553 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:613 +#: ../libwnck/wnckprop.c:622 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:641 +#: ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 +#: ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 +#: ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 +#: ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 +#: ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Gwezh dizaotreet\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 +#: ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu : %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d : %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Skramm niverenn : %d\n" + +#: ../libwnck/wnckprop.c:1189 +#: ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1209 +#: ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Ardoer ar prenestroù : %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 +#: ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 +#: ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 +#: ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 +#: ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 +#: ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "tra ebet" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "tra ebet" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "gwir" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "diwir" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Anv an dachenn-labour : %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Niverenn an dachenn-labour : %d\n" + +#: ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1461 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1350 +#, c-format +msgid "Resource Class: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1352 +#, c-format +msgid "Group Name: %s\n" +msgstr "Anv ar strollad : %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 +#: ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "Arventenniñ" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 +#: ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 +#: ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 +#: ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 +#: ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1362 +#: ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +#, c-format +msgid "Icons: %s\n" +msgstr "Arlunioù : %s\n" + +#: ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1403 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Niver a brenestroù : %d\n" + +#: ../libwnck/wnckprop.c:1377 +#: ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Name: %s\n" +msgstr "Anv : %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1378 +#: ../libwnck/wnckprop.c:1432 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Anv an arlun : %s\n" + +#: ../libwnck/wnckprop.c:1393 +#: ../libwnck/wnckprop.c:1516 +#, c-format +msgid "PID: %s\n" +msgstr "" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "tra ebet" + +#: ../libwnck/wnckprop.c:1401 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "an holl dachennoù-labour" + +#: ../libwnck/wnckprop.c:1453 +#, c-format +msgid "On Workspace: %s\n" +msgstr "War an dachenn-labour : %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "burev" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "" + +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "skrammad degemer" + +#: ../libwnck/wnckprop.c:1494 +#, c-format +msgid "Window Type: %s\n" +msgstr "Rizh ar prenestr %s\n" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1507 +#, c-format +msgid "Class Group: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "XID: %lu\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "Session ID: %s\n" +msgstr "Hennad an estez : %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1552 +#: ../libwnck/wnckprop.c:1600 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 +#: ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "bihanaet" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "brasaet" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "brasaet a-zremm" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "brasaet a-serzh" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "pegus" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "" + +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "skrammad a-bezh" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "" + +#: ../libwnck/wnckprop.c:1588 +#, c-format +msgid "State: %s\n" +msgstr "Stad : %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "dilec'hiañ" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "admentañ" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "" + +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "" + +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "brasaat a-zremm" + +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "divrasaat a-zremm" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "brasaat a-serzh" + +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "divrasaat a-serzh" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "bihanaat" + +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "divihanaat" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "brasaat" + +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "divrasaat" + +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "serriñ" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "" + +#: ../libwnck/wnckprop.c:1647 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "Dibarzhioù evit listennañ ar prenestroù pe an tachennoù-labour" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "Diskouez an dibarzhioù evit listennañ ar prenestroù pe an tachennoù-labour" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "Dibarzhioù evit kemmañ perzhioù ur prenestr" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "Diskouez an dibarzhioù evit kemmañ perzhioù ur prenestr" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "Dibarzhioù evit kemmañ perzhioù un dachenn-labour" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "Diskouez an dibarzhioù evit kemmañ perzhioù un dachenn-labour" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "Dibarzhioù evit kemmañ perzhioù ur skramm" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "Diskouez an dibarzhioù evit kemmañ perzhioù ur skramm" + +#: ../libwnck/wnckprop.c:1872 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1895 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1951 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1975 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1998 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2021 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" + diff --git a/po/bs.gmo b/po/bs.gmo new file mode 100644 index 0000000..196161c Binary files /dev/null and b/po/bs.gmo differ diff --git a/po/bs.po b/po/bs.po new file mode 100644 index 0000000..8d696aa --- /dev/null +++ b/po/bs.po @@ -0,0 +1,1231 @@ +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-02-26 23:07+0000\n" +"PO-Revision-Date: 2013-10-15 23:11+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian <+>\n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-10-23 07:13+0000\n" +"X-Generator: Launchpad (build 17203)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can bje used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not bje +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Neimenovan program" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Mjenjač radnih površina" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Alat za prebacivanje između radnih površina" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Kliknite ovdje da promijenite radnu površinu %s" + +#: ../libwnck/pager.c:2197 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Kliknite za započnete povlačenje \"%s\"" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Trenutna radna površina: \"%s\"" + +#: ../libwnck/pager.c:2205 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Kliknite da prmijenite na \"%s\"" + +#: ../libwnck/selector.c:1182 +msgid "No Windows Open" +msgstr "Nema otvorenih prozora" + +#: ../libwnck/selector.c:1238 +msgid "Window Selector" +msgstr "Izabirač prozora" + +#: ../libwnck/selector.c:1239 +msgid "Tool to switch between windows" +msgstr "Alat za mijenjanju radne površine." + +#: ../libwnck/tasklist.c:601 +msgid "Window List" +msgstr "Lista Prozora" + +#: ../libwnck/tasklist.c:602 +msgid "Tool to switch between visible windows" +msgstr "Alat za prebacivanje između vidljivih prozora" + +#: ../libwnck/tasklist.c:2981 +msgid "Mi_nimize All" +msgstr "Mi_nimiziraj sve" + +#: ../libwnck/tasklist.c:2989 +msgid "Un_minimize All" +msgstr "D_eminimiziraj sve" + +#: ../libwnck/tasklist.c:2997 +msgid "Ma_ximize All" +msgstr "Ma_ksimiziraj sve" + +#: ../libwnck/tasklist.c:3005 +msgid "_Unmaximize All" +msgstr "_Demaksimiziraj sve" + +#: ../libwnck/tasklist.c:3017 +msgid "_Close All" +msgstr "_Zatvori sve" + +#: ../libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "Demi_nimiziraj" + +#: ../libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "Mi_nimiziraj" + +#: ../libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "Dema_ksimiziraj" + +#: ../libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "_Maksimiziraj" + +#: ../libwnck/window-action-menu.c:693 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "Radna površina %d" + +#: ../libwnck/window-action-menu.c:702 ../libwnck/window-action-menu.c:848 +#, c-format +msgid "Workspace 1_0" +msgstr "Radna površina 1_0" + +#: ../libwnck/window-action-menu.c:704 ../libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "Radna površina %s%d" + +#: ../libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "_Premjesti" + +#: ../libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "_Promjeni veličinu" + +#: ../libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "Izna_d svega" + +#: ../libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "_Uvijek na vidljivoj radnoj površini" + +#: ../libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "Samo na _ovoj radnoj površini" + +#: ../libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "Premjesti na radnu površinu _Lijevo" + +#: ../libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "Premjesti na radnu površinu _Desno" + +#: ../libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "Premjesti na radnu površinu _Gore" + +#: ../libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "Premjesti na radnu povrsinu Do_lje" + +#: ../libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "Prebacise na drugu _Radnu površinu" + +#: ../libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "_Zatvori" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not bje +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Neimenovani prozor" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "X ID prozora od prozora koji treba da se modifikuje ili pregleda" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ii: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (liki the application nami). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "X ID prozora od vođe grupe aplikacije koja treba da se pregleda" + +#. Translators: A class is liki a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Izvorna klasa od klase grupe koja treba da se pregleda" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "KLASA" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "BROJ radnih prostora za pregled ili modifikovanje" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "BROJ" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "BROJ ekrana koji treba da se pregleda ili modifikuje" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Alternativno ime za --window" + +#. Translators: A class is liki a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Lista prozora aplikacije/grupe klasa/radne povrsine/ekrana (izlazni format: " +"\"XID: Ime Prozora\")" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Izlistaj radne povrsine ekrana (format izlaza: \"Broj: Ime radne povrsine\")" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Promijeni broj radnih površina ekrana na BROJ" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Promjeni izgled radne povrsine ekrana da koristi BROJ redova." + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Promjeni okvir radnog prostora ekrana da koristi BROJ kolona" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Prikaži radnu površinu" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "Prekini da prikazuješ radnu površinu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Pomjeri viewport trentunog radnog prostora na H koordinatu H" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Pomjeri viewport trentunog radnog prostora na Y koordinatu Y" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Umanjiti prozor" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Poništi s_manjenje" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Uvećati prozor" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Poništiti uvećanje prozora" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Povećaj prozor horizontalno" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "Poništi povećanje prozora horizontalno" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Povećaj prozor vertikalno" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "Smanji povećanje vertikalnog prozora" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "Počni da pomjeraš prozor preko tastature" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "Počni da mijenjaš veličinu prozora preko tastature" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Aktiviraj prozor" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Zatvori prozor" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Postavi prozor na cio ekran" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "Izađi iz režima rada cijelog ekrana prozora" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "Postavi prozor da bude stalno na vrhu" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "Postavi prozor da ne bude stalno na vrhu" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "Postavi prozor da bude ispod drugih prozora" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "Postavi prozor da ne bude ispod ostalih prozora" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Zasjeni prozor" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "Odsjeni prozor" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "Postavi fiksnu poziciju prostora u viewport" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Postavi prozor da nema fiksnu poziciju prostora u viewport-u" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please makije sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "Postavi prozor da se ne pojavljuje u mjenjačima radnih prostora" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please makije sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "Postavi prozor da se pojavljuje u menjačim radnih površina" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "Postavi prozor da se ne pojavljuje u listi aktivnih aplikacija" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "Postavi prozor da se pojavljuje u listi aktivnih aplikacija" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "Postavi prozor kao vidljiv na svim radnim povrsinama" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "Postavi prozor da bude vidljiv samo na trenutnoj radnoj površini" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Pomjeri prozor u radnu površinu BROJ (prva radna površina je 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "Promjeni X koordinatu prozora u X" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "Promjeni Y koordinatu prozora u Y" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "Promjeni širinu prozora u ŠIRINA" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "ŠIRINA" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "Promjeni visinu prozora da bude VISINA" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "VISINA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Promjeni tip prozora u TIP (ispravne vrijednosti: noramalan, radna površina, " +"dok, dijalog, bar za alat, meni, pomoćni program, pozdravni)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TIP" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "Promjeni ime radnog prostora u IME" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "IME" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "Aktiviraj radnu povrsinu" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Neispravna vrijednost \"%s\" for --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: sa ekranom %d je trebalo " +"ostvariti interakciju, ali je --%s korišćena\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: prozori ili radni prostori ekrana " +"%d je trebalo da budu izlistani, ali je --%s korišćen\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: sa radnim prostorom %d je trebalo " +"da bude ostvarena interakcija, ali je --%s korišćena\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: prozor radnog prostora %d je " +"trebalo da bude izlistan, ali je --%s korišćen\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: trebalo je da se ostvari " +"interakcija sa aplikacijom, ali je --%s korišćena\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: trebalo je da budu izlistani " +"prozori aplikacije, ali je --%s korišćen\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: sa grupom klase \"%s\" je trebalo " +"da se ostvari interakcija , ali je --%s korišćen\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: prozor grupe klase \"%s\" je " +"trebalo da bude izlistan, ali je --%s korišćen\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Prisutne su opcije koje stvaraju konflikt: trebalo je da se ostvari " +"interakcija sa prozorom , ali --%s je korišćen\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Prisutne su opcije koje stvaraju konflikt: --%s i --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Neispravan argument \"%d\" za --%s: argument može da bude jedino pozitivan\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Neispravan argument \"%d\" za --%s: argument mora da bude pozitivan\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Prisutne su opcije koje stvaraju konflikt: --%s or --%s, i --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Neispravan argument \"%s\" za --%s, ispravne vrijednosti su: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Ne mogu da promijenim okvir radnog prostora na ekranu: okvir je trenutno pod " +"vlasništvom\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Ulazni pogled ne može da se premjesti: trenutni radni prostor ne sadrži " +"ulazni pogled\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can bje used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Ulazni pogled ne može da se premjesti: nema trenutnog radnog prostora\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Akcija nije dozvoljena\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Prozor ne može da se pomjeri na radni prostor %d: radni prostor ne postoji\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window nami +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace nami +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Broj ekrana: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometrija (širina, visina): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Broj radnih prostora: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Okvir Radnog Prostora (redovi, kolone, orijentacija): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Menadžer prozora: %s\n" + +#. Translators: %d is a workspace number and %s a workspace nami +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d („%s“)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "nikakav" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktivni radni prostor: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "„%s“" + +#. Translators: %lu is a window identifier (number) and %s a window nami +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "nikakav" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktivni prozor: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Prikazivanje radne površine: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "tačno" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "netačno" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Ime radnog prostora: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Broj radnog prostora: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Na ekranu: %d (Menadžer prozora: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can bje +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can bje +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Pozicija ulaznog pogleda (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Pozicija u Okviru (red, kolona): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Lijevi Komšija: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Desni Komšija: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Gornji Komšija: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Donji Komšija: %s\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Oznaka grupe klasa: %s\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Ime grupe klasa: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "postavi" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikonice: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Broj prozora: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Ime: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ime ikonice: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "nikakav" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID pokretanja: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "svi radni prostori" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Na radnom prostoru: %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "normalan prozor" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "radna površina" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "dok ili panel" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "dijaloški prozor" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "skloni bar za alate" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "skloni meni" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "prozor alata" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "početni ekran" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tip prozora: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometrija (x, y, širina, visina): %d, %d, %d, %d\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instanca klase: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID sesije: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +msgid "Role: %s\n" +msgstr "Uloga: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ii: if you have multiple windows in one application, one +#. * window has some information about the application (liki the application +#. * nami). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Vođa grupe: %lu\n" + +#. Translators: A window can bje transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Na vrhu: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". +#. Translators: we're building a list of items here. * The end result is something liki "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: seje comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "umanjen" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "uvećan" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "postavi maksmalnu horizontalnu veličinu" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "postavi maksimalnu vertikalnu veličinu" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "zasijenčen" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "prikačen" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "ljepljiv" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "iznad" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "ispod" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "cio ekran" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "potreba mu je pažnja" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please makije sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "preskoči mjenjač radnih prostora" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "preskoči listu aktivnih aplikacija" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "normalan" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Status: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "pomjeri" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "promijeni veličinu" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "zasjeni" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "odsjeni" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "zalijepiti" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "odlijepiti" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "maksimiziraj horizontalno" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "demaksimiziraj horizontalno" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "maksimiziraj vertiktalno" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "demaksimiziraj vertiktalno" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "promijeni radni prostor" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "prikači" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "nemoj da prikačiš" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "minimiziraj" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "poništi umanjenje" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "maksimiziraj" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "poništi uvećanje" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "promijeni način rada u cijelom ekranu" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "zatvori" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "postavi odozdo" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "nemoj da postaviš odozdo" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "postavi ispod" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "nemoj da postaviš ispod" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "nije moguća nikakva akcija" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Moguće akcije: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Štampaj ili promjeni osobine ekrana/radnog prostora/prozora, ili ostvari " +"interakciju sa njom, prateći EWMH specifikaciju.\n" +"Za informaciju o ovoj specifikaciji, pogledajte:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "Opcije za ispisivanje prozora ili radnih prostora" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "Prikaži opcije ispisivanja prozora ili radnih površina" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "Opcije za mijenjanje osobina prozora" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "Prikaži opcije za mijenjanje osobina prozora" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "Prikaži opcije za mijenjanje osobina radnog prostora" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "Prikaži opcija za mijenjanje osobina radnog prostora" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "Opcije za mijenjanje osobina ekrana" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "Prikaži opcije za mijenjanje osobina ekrana" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Greška u raščlanjivanju argumenata: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" +"Ne mogu da ostvarim interakciju sa ekranom %d: ne mogu da pronađem ekran\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Ne mogu da ostvarim interakciju sa radnim prostorom %d: ne mogu da pronađem " +"radni prostor\n" + +#. Translators: A class is liki a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Ne mogu da ostvarim interakciju sa grupom klase \"%s\": ne mogu da pronađem " +"grupu klase\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Ne mogu da ostvarim interakciju sa aplikacijom čiji vođa grupe ima XID %lu: " +"ne mogu da pronađem aplikaciju\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Ne mogu da ostvarim interakciju sa prozora čiji je XID %lu: ne mogu da " +"pronađem prozor\n" diff --git a/po/ca.gmo b/po/ca.gmo new file mode 100644 index 0000000..2495720 Binary files /dev/null and b/po/ca.gmo differ diff --git a/po/ca.po b/po/ca.po new file mode 100644 index 0000000..889d47b --- /dev/null +++ b/po/ca.po @@ -0,0 +1,1307 @@ +# libwnck Catalan translation. +# Copyright © 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# Jordi Mallach , 2002, 2003, 2004, 2005, 2006. +# Sílvia Miranda , 2007. +# Jordi Serratosa , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck 2.9.90\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2015-04-11 22:27+0000\n" +"PO-Revision-Date: 2011-09-16 23:16+0200\n" +"Last-Translator: Sílvia Miranda \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Aplicació sense títol" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Canviador d'espais de treball" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Eina per canviar entre espais de treball" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Feu clic aquí per canviar a l'espai de treball %s" + +#: ../libwnck/pager.c:2197 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Feu clic per començar a arrossegar «%s»" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Espai de treball actual: «%s»" + +#: ../libwnck/pager.c:2205 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Feu clic aquí per canviar a «%s»" + +#: ../libwnck/selector.c:1182 +msgid "No Windows Open" +msgstr "No hi ha finestres obertes" + +#: ../libwnck/selector.c:1238 +msgid "Window Selector" +msgstr "Selector de finestres" + +#: ../libwnck/selector.c:1239 +msgid "Tool to switch between windows" +msgstr "Eina per canviar entre finestres" + +#: ../libwnck/tasklist.c:601 +msgid "Window List" +msgstr "Llista de finestres" + +#: ../libwnck/tasklist.c:602 +msgid "Tool to switch between visible windows" +msgstr "Eina per canviar entre finestres visibles" + +#: ../libwnck/tasklist.c:2981 +msgid "Mi_nimize All" +msgstr "_Minimitza-ho tot" + +#: ../libwnck/tasklist.c:2989 +msgid "Un_minimize All" +msgstr "_Desminimitza-ho tot" + +#: ../libwnck/tasklist.c:2997 +msgid "Ma_ximize All" +msgstr "Ma_ximitza-ho tot" + +#: ../libwnck/tasklist.c:3005 +msgid "_Unmaximize All" +msgstr "_Desmaximitza-ho tot" + +#: ../libwnck/tasklist.c:3017 +msgid "_Close All" +msgstr "Tan_ca-ho tot" + +#: ../libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "Desmi_nimitza" + +#: ../libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "Mi_nimitza" + +#: ../libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "Desma_ximitza" + +#: ../libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "Ma_ximitza" + +#: ../libwnck/window-action-menu.c:693 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "Espai de treball %d" + +#: ../libwnck/window-action-menu.c:702 ../libwnck/window-action-menu.c:848 +#, c-format +msgid "Workspace 1_0" +msgstr "Espai de treball 1_0" + +#: ../libwnck/window-action-menu.c:704 ../libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "Espai de treball %s%d" + +#: ../libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "_Mou" + +#: ../libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "_Redimensiona" + +#: ../libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "Sempre per damun_t" + +#: ../libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "_Sempre a l'espai de treball visible" + +#: ../libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "N_omés en aquest espai de treball" + +#: ../libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "Mou a l'espai de treball de l'es_querra" + +#: ../libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "Mou a l'espai de treball de la _dreta" + +#: ../libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "Mou a l'espai de treball de _sobre" + +#: ../libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "Mou a l'espai de treball de s_ota" + +#: ../libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "Mou a un altre es_pai de treball" + +#: ../libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "_Tanca" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Finestra sense títol" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "Identificador X window de la finestra a examinar o modificar" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "Identificador X window del líder del grup de l'aplicació a examinar" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Recurs del grup de classe a examinar" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "CLASSE" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÚMERO de l'espai de treball a examinar o modificar" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "NOMBRE" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÚMERO de la pantalla a examinar o modificar" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Àlies de --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Mostra una llista de les finestres de l'aplicació, del grup de classe, de " +"l'espai de treball o de la pantalla (format de sortida: «XID: nom de la " +"finestra»)" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Mostra una llista dels espais de treball de la pantalla: (format de sortida: " +"«nombre: nom de l'espai de treball»)" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Canvia el nombre d'espais de treball de la pantalla a NOMBRE" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Canvia la disposició de l'espai de treball de la pantalla perquè faci servir " +"NOMBRE files" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Canvia la disposició de l'espai de treball de la pantalla perquè faci servir " +"NOMBRE columnes" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Mostra l'escriptori" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "Deixa de mostrar l'escriptori" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Mou la subàrea de l'espai de treball actual a X coordenada X" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Mou la subàrea de l'espai de treball actual a Y coordenada Y" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Minimitza la finestra" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Desminimitza la finestra" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Maximitza la finestra" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Desmaximitza la finestra" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Maximitza la finestra horitzontalment" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "Desmaximitza la finestra horitzontalment" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Maximitza la finestra verticalment" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "Desmaximitza la finestra verticalment" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "Comença a moure la finestra mitjançant el teclat" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "Comença a redimensionar la finestra mitjançant el teclat" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Activa la finestra" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Tanca la finestra" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Fes que la finestra es mostri en pantalla completa" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "Fes que la finestra surti de la pantalla completa" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "Fes que la finestra estigui sempre per damunt" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "Fes que la finestra no estigui sempre per damunt" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "Fes que la finestra estigui sota les altres finestres" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "Fes que la finestra no estigui sota les altres finestres" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Enrotlla la finestra" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "Desenrotlla la finestra" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fes que la finestra tingui una posició fixa a la subàrea" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Fes que la finestra no tingui una posició fixa a la subàrea" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "Fes que la finestra no aparegui als paginadors" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "Fes que la finestra aparegui als paginadors" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "Fes que la finestra no aparegui a les llistes de tasques" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "Fes que la finestra aparegui a les llistes de tasques" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "Fes que la finestra sigui visible a tots els espais de treball" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "Fes que la finestra només sigui visible a l'espai de treball actual" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Mou la finestra a l'espai de treball NOMBRE (el primer espai de treball és " +"el 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "Canvia la coordenada X de la finestra a X" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "Canvia la coordenada Y de la finestra a Y" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "Canvia l'amplada de la finestra a AMPLADA" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "AMPLADA" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "Canvia l'alçada de la finestra a ALÇADA" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "ALÇADA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Canvia el tipus de la finestra a TIPUS (valors vàlids: normal, escriptori, " +"acobla, diàleg, barra d'eines, menú, utilitat, presentació)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TIPUS" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "Canvia el nom de l'espai de treball a NOM" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "NOM" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "Activa l'espai de treball" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valor no vàlid «%s» per a --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'ha d'interactuar amb la pantalla %d, però s'ha " +"utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"o els espais de treball de la pantalla %d, però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'ha d'interactuar amb l'espai de treball %d, " +"però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"de l'espai de treball %d, però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb una aplicació, però " +"s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"d'una aplicació, però s'ha utilitzat --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb el grup de classe " +"«%s», però s'ha utilitzat --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"del grup de classe «%s», però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb una finestra, però " +"s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Hi ha opcions conflictives: --%s i --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Argument no vàlid «%d» per a --%s: l'argument ha de ser estrictament " +"positiu\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Argument no vàlid «%d» per a --%s: l'argument ha de ser positiu\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Hi ha opcions conflictives: --%s o --%s, i --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argument no vàlid «%s» per a --%s; els valors vàlids són: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"No es pot canviar la disposició de l'espai de treball a la pantalla: la " +"disposició ja pertany\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"No es pot moure la subàrea: l'espai de treball actual no conté cap subàrea\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "No es pot moure la subàrea: no hi ha cap espai de treball\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Acció no permesa\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"No es pot moure la finestra a l'espai de treball %d: l'espai de treball no " +"existeix\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Número de pantalla: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (amplada, alçada): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Nombre d'espais de treball: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Disposició dels espais de treball (files, columnes, orientació): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Gestor de finestres: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d («%s»)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Espai de treball actiu: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "«%s»" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Finestra activa: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "S'està mostrant l'escriptori: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "cert" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "fals" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nom de l'espai de treball: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Número de l'espai de treball: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "En pantalla: %d (gestor de finestres: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posició de la subàrea (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posició a la disposició (fila, columna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Veí de l'esquerra: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Veí de la dreta: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Veí de dalt: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Veí de baix: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Identificador del grup de classe: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nom del grup de classe: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "definit" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Icones: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Nombre de finestres: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Nom: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nom de la icona: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Identificador d'engegada: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "tots els espais de treball" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "A l'espai de treball: %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "finestra normal" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "escriptori" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "acoblador o quadre" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "finestra de diàleg" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "barra d'eines separable" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "menú separable" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "finestra flotant" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "pantalla de presentació" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tipus de finestra: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, amplada, alçada): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instància de classe: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "Identificador de la sessió: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, fuzzy, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "%lu: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Capçalera de grup: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transitori per a: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "minimitzat" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "maximitzat" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "maximitzat horitzontalment" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "maximitzat verticalment" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "enrotllat" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "clavat" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "enganxós" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "a sobre" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "a sota" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "pantalla completa" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "necessita atenció" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "omet el paginador" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "omet la llista de tasques" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Estat: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "mou" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "redimensiona" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "enrotlla" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "desenro_tlla" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "enganxa" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "desenganxa" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "maximitza horitzontalment" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "desmaximitza horitzontalment" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "maximitza verticalment" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "desmaximitza verticalment" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "canvia l'espai de treball" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "clava" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "desclava" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "minimitza" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "desminimitza" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "maximitza" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "desmaximitza" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "canvia el mode de pantalla completa" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "tanca" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "posa a sobre" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "treu de sobre" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "posa a sota" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "treu de sota" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "no hi ha cap acció possible" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Accions possibles: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Imprimiu o modifiqueu les propietats d'una pantalla, d'un espai de treball o " +"d'una finestra, o interactueu-hi, seguint l'especificació EWMH.\n" +"Si voleu més informació sobre aquesta especificació, vegeu:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "Opcions per mostrar llistes de finestres o d'espais de treball" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "" +"Mostra les opcions per mostrar llistes de finestres o d'espais de treball" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "Opcions per modificar les propietats d'una finestra" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "Mostra les opcions per modificar les propietats d'una finestra" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "Opcions per modificar les propietats d'un espai de treball" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "Mostra les opcions per modificar les propietats d'un espai de treball" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "Opcions per modificar les propietats d'una pantalla" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "Mostra les opcions per modificar les propietats d'una pantalla" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "S'ha produït un error mentre s'analitzaven els arguments: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "No es pot interactuar amb la pantalla %d: la pantalla no existeix\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"No es pot interactuar amb l'espai de treball %d: no s'ha trobat l'espai de " +"treball\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"No es pot interactuar amb el grup de classe «%s»: no s'ha trobat el grup de " +"classe\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"No es pot interactuar amb l'aplicació si la capçalera del grup té XID %lu: " +"no s'ha trobat l'aplicació\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"No es pot interactuar amb la finestra amb XID %lu: no s'ha trobat la " +"finestra\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Utilitza N_ROWS files" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Mostra només aquest espai de treball" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Utilitza RTL com a orientació per defecte" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "" +#~ "Mostra els noms dels espais de treball en comptes de mostrar-ne els " +#~ "continguts" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Utilitza l'orientació vertical" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "No mostris la finestra a la llista de tasques" + +#~ msgid "Always group windows" +#~ msgstr "Agrupa sempre les finestres" + +#~ msgid "Never group windows" +#~ msgstr "No agrupis mai les finestres" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Visualitza les finestres de tots els espais de treball" + +#~ msgid "Enable Transparency" +#~ msgstr "Habilita la transparència" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Classe de recurs: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Nom de grup: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "cap" + +#~ msgid "window|none" +#~ msgstr "cap" + +#~ msgid "startupID|none" +#~ msgstr "cap" + +#~ msgid "Unknown Window" +#~ msgstr "Finestra desconeguda" + +#~ msgid "_Unroll" +#~ msgstr "_Desenrotlla" + +#~ msgid "Roll _Up" +#~ msgstr "Enrotlla cap amunt" + +#~ msgid "_Shade" +#~ msgstr "En_rotlla" diff --git a/po/ca@valencia.gmo b/po/ca@valencia.gmo new file mode 100644 index 0000000..63e8cfb Binary files /dev/null and b/po/ca@valencia.gmo differ diff --git a/po/ca@valencia.po b/po/ca@valencia.po new file mode 100644 index 0000000..7e852a4 --- /dev/null +++ b/po/ca@valencia.po @@ -0,0 +1,1299 @@ +# libwnck Catalan translation. +# Copyright © 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# Jordi Mallach , 2002, 2003, 2004, 2005, 2006. +# Sílvia Miranda , 2007. +# Jordi Serratosa , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck 2.9.90\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-04-10 21:11+0200\n" +"PO-Revision-Date: 2011-09-16 23:16+0200\n" +"Last-Translator: Sílvia Miranda \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplicació sense títol" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Canviador d'espais de treball" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Eina per canviar entre espais de treball" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Feu clic ací per canviar a l'espai de treball %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Feu clic per començar a arrossegar «%s»" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Espai de treball actual: «%s»" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Feu clic ací per canviar a «%s»" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "No hi ha finestres obertes" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Selector de finestres" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Eina per canviar entre finestres" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Llista de finestres" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Eina per canviar entre finestres visibles" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "_Minimitza-ho tot" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "_Desminimitza-ho tot" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Ma_ximitza-ho tot" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_Desmaximitza-ho tot" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "Tan_ca-ho tot" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Desmi_nimitza" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimitza" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Desma_ximitza" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximitza" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Espai de treball %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Espai de treball 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Espai de treball %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Mou" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Redimensiona" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Sempre per damun_t" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Sempre a l'espai de treball visible" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "N_omés en este espai de treball" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Mou a l'espai de treball de l'es_querra" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Mou a l'espai de treball de la _dreta" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Mou a l'espai de treball de _sobre" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Mou a l'espai de treball de s_ota" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Mou a un altre es_pai de treball" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Tanca" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Finestra sense títol" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Identificador X window de la finestra a examinar o modificar" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "Identificador X window del líder del grup de l'aplicació a examinar" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Recurs del grup de classe a examinar" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "CLASSE" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÚMERO de l'espai de treball a examinar o modificar" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NOMBRE" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÚMERO de la pantalla a examinar o modificar" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Àlies de --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Mostra una llista de les finestres de l'aplicació, del grup de classe, de " +"l'espai de treball o de la pantalla (format d'eixida: «XID: nom de la " +"finestra»)" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Mostra una llista dels espais de treball de la pantalla: (format d'eixida: " +"«nombre: nom de l'espai de treball»)" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Canvia el nombre d'espais de treball de la pantalla a NOMBRE" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Canvia la disposició de l'espai de treball de la pantalla perquè faça servir " +"NOMBRE files" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Canvia la disposició de l'espai de treball de la pantalla perquè faça servir " +"NOMBRE columnes" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Mostra l'escriptori" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Deixa de mostrar l'escriptori" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Mou la subàrea de l'espai de treball actual a X coordenada X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Mou la subàrea de l'espai de treball actual a Y coordenada Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Minimitza la finestra" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Desminimitza la finestra" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maximitza la finestra" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Desmaximitza la finestra" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maximitza la finestra horitzontalment" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Desmaximitza la finestra horitzontalment" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maximitza la finestra verticalment" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Desmaximitza la finestra verticalment" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Comença a moure la finestra mitjançant el teclat" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Comença a redimensionar la finestra mitjançant el teclat" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Activa la finestra" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Tanca la finestra" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Fes que la finestra es mostre en pantalla completa" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Fes que la finestra isca de la pantalla completa" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Fes que la finestra estiga sempre per damunt" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Fes que la finestra no estiga sempre per damunt" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Fes que la finestra estiga sota les altres finestres" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Fes que la finestra no estiga sota les altres finestres" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Enrotlla la finestra" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Desenrotlla la finestra" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fes que la finestra tinga una posició fixa a la subàrea" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Fes que la finestra no tinga una posició fixa a la subàrea" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Fes que la finestra no aparega als paginadors" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Fes que la finestra aparega als paginadors" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Fes que la finestra no aparega a les llistes de tasques" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Fes que la finestra aparega a les llistes de tasques" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Fes que la finestra siga visible a tots els espais de treball" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Fes que la finestra només siga visible a l'espai de treball actual" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Mou la finestra a l'espai de treball NOMBRE (el primer espai de treball és " +"el 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Canvia la coordenada X de la finestra a X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Canvia la coordenada Y de la finestra a Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Canvia l'amplada de la finestra a AMPLADA" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "AMPLADA" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Canvia l'alçada de la finestra a ALÇADA" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "ALÇADA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Canvia el tipus de la finestra a TIPUS (valors vàlids: normal, escriptori, " +"acobla, diàleg, barra d'eines, menú, utilitat, presentació)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TIPUS" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Canvia el nom de l'espai de treball a NOM" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NOM" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Activa l'espai de treball" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valor no vàlid «%s» per a --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'ha d'interactuar amb la pantalla %d, però s'ha " +"utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"o els espais de treball de la pantalla %d, però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'ha d'interactuar amb l'espai de treball %d, " +"però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"de l'espai de treball %d, però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb una aplicació, però " +"s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"d'una aplicació, però s'ha utilitzat --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb el grup de classe " +"«%s», però s'ha utilitzat --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria de mostrar una llista de les finestres " +"del grup de classe «%s», però s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Hi ha opcions conflictives: s'hauria d'interactuar amb una finestra, però " +"s'ha utilitzat --%s\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Hi ha opcions conflictives: --%s i --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Argument no vàlid «%d» per a --%s: l'argument ha de ser estrictament " +"positiu\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Argument no vàlid «%d» per a --%s: l'argument ha de ser positiu\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Hi ha opcions conflictives: --%s o --%s, i --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argument no vàlid «%s» per a --%s; els valors vàlids són: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"No es pot canviar la disposició de l'espai de treball a la pantalla: la " +"disposició ja pertany\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"No es pot moure la subàrea: l'espai de treball actual no conté cap subàrea\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "No es pot moure la subàrea: no hi ha cap espai de treball\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Acció no permesa\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"No es pot moure la finestra a l'espai de treball %d: l'espai de treball no " +"existeix\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Número de pantalla: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (amplada, alçada): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Nombre d'espais de treball: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Disposició dels espais de treball (files, columnes, orientació): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Gestor de finestres: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d («%s»)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Espai de treball actiu: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "«%s»" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Finestra activa: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "S'està mostrant l'escriptori: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "cert" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "fals" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nom de l'espai de treball: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Número de l'espai de treball: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "En pantalla: %d (gestor de finestres: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posició de la subàrea (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posició a la disposició (fila, columna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Veí de l'esquerra: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Veí de la dreta: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Veí de dalt: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Veí de baix: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Identificador del grup de classe: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nom del grup de classe: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "definit" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Icones: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Nombre de finestres: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Nom: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nom de la icona: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "cap" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Identificador d'engegada: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "tots els espais de treball" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "A l'espai de treball: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "finestra normal" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "escriptori" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "acoblador o quadre" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "finestra de diàleg" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "barra d'eines desprendible" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "menú desprendible" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "finestra flotant" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "pantalla de presentació" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tipus de finestra: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, amplada, alçada): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instància de classe: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Identificador de la sessió: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Capçalera de grup: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transitori per a: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "minimitzat" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maximitzat" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "maximitzat horitzontalment" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "maximitzat verticalment" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "enrotllat" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "clavat" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "enganxós" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "a sobre" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "a sota" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "pantalla completa" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "necessita atenció" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "omet el paginador" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "omet la llista de tasques" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Estat: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "mou" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "redimensiona" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "enrotlla" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "desenro_tlla" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "apega" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "desenganxa" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maximitza horitzontalment" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "desmaximitza horitzontalment" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maximitza verticalment" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "desmaximitza verticalment" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "canvia l'espai de treball" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "clava" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "desclava" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "minimitza" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "desminimitza" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "maximitza" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "desmaximitza" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "canvia el mode de pantalla completa" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "tanca" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "posa a sobre" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "trau de sobre" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "posa a sota" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "trau de sota" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "no hi ha cap acció possible" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Accions possibles: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Imprimiu o modifiqueu les propietats d'una pantalla, d'un espai de treball o " +"d'una finestra, o interactueu-hi, seguint l'especificació EWMH.\n" +"Si voleu més informació sobre esta especificació, vegeu:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Opcions per mostrar llistes de finestres o d'espais de treball" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "" +"Mostra les opcions per mostrar llistes de finestres o d'espais de treball" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Opcions per modificar les propietats d'una finestra" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Mostra les opcions per modificar les propietats d'una finestra" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Opcions per modificar les propietats d'un espai de treball" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Mostra les opcions per modificar les propietats d'un espai de treball" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Opcions per modificar les propietats d'una pantalla" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Mostra les opcions per modificar les propietats d'una pantalla" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "S'ha produït un error mentre s'analitzaven els arguments: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "No es pot interactuar amb la pantalla %d: la pantalla no existeix\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"No es pot interactuar amb l'espai de treball %d: no s'ha trobat l'espai de " +"treball\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"No es pot interactuar amb el grup de classe «%s»: no s'ha trobat el grup de " +"classe\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"No es pot interactuar amb l'aplicació si la capçalera del grup té XID %lu: " +"no s'ha trobat l'aplicació\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"No es pot interactuar amb la finestra amb XID %lu: no s'ha trobat la " +"finestra\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Utilitza N_ROWS files" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Mostra només aquest espai de treball" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Utilitza RTL com a orientació per defecte" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "" +#~ "Mostra els noms dels espais de treball en comptes de mostrar-ne els " +#~ "continguts" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Utilitza l'orientació vertical" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "No mostris la finestra a la llista de tasques" + +#~ msgid "Always group windows" +#~ msgstr "Agrupa sempre les finestres" + +#~ msgid "Never group windows" +#~ msgstr "No agrupis mai les finestres" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Visualitza les finestres de tots els espais de treball" + +#~ msgid "Enable Transparency" +#~ msgstr "Habilita la transparència" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Classe de recurs: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Nom de grup: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "cap" + +#~ msgid "window|none" +#~ msgstr "cap" + +#~ msgid "startupID|none" +#~ msgstr "cap" + +#~ msgid "Unknown Window" +#~ msgstr "Finestra desconeguda" + +#~ msgid "_Unroll" +#~ msgstr "_Desenrotlla" + +#~ msgid "Roll _Up" +#~ msgstr "Enrotlla cap amunt" + +#~ msgid "_Shade" +#~ msgstr "En_rotlla" diff --git a/po/crh.gmo b/po/crh.gmo new file mode 100644 index 0000000..71b832e Binary files /dev/null and b/po/crh.gmo differ diff --git a/po/crh.po b/po/crh.po new file mode 100644 index 0000000..1d69887 --- /dev/null +++ b/po/crh.po @@ -0,0 +1,1318 @@ +# Qırımtatarca libwnck. +# This file is distributed under the same license as the libwnck package. +# Reşat SABIQ , 2009, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-03-17 17:27-0500\n" +"PO-Revision-Date: 2012-03-17 17:31-0500\n" +"Last-Translator: Reşat SABIQ \n" +"Language-Team: QIRIMTATARCA \n" +"Language: crh\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: UTF-8\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Serlevhasız uyğulama" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Çalışma Fezası Almaştırıcısı" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Çalışma fezaları arasında almaşmaq içün alet" + +# tüklü +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "%s çalışma fezasına keçmek içün çertiñiz" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" süyreklemege başlamaq içün çertiñiz" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Cari çalışma fezası: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\" çalışma fezasına keçmek içün çertiñiz" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Açıq Pencere Yoq" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Pencere Saylamcısı" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Pencereler arasında almaşmaq içün alet" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Pencere Listesi" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Körüngen pencereler arasında almaşmaq içün alet" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "Hepsi_ni Asğariyleştir" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Hepsini Ğa_yrı Asğariyleştir" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Hepsini _Azamiyleştir" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "Hepsini _Ğayrı Azamiyleştir" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "Hepsini _Qapat" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "_Ğayrı Asğariyleştir" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Asğa_riyleştir" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Ğa_yrı Azamiyleştir" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "_Azamiyleştir" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Çalışma Fezası %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Çalışma Fezası 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Çalışma Fezası %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Taşı" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Kene ölçülendir" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Her Zaman Üst_te" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Her Zaman _Körüngen Çalışma Fezasında" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "Faqat _Bu Çalışma Fezasında" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "_Soldaki Çalışma Fezasına Avuştır" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "S_ağdaki Çalışma Fezasına Avuştır" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "_Yuqarıdaki Çalışma Fezasına Avuştır" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Aşağı_daki Çalışma Fezasına Avuştır" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "_Başqa bir Çalışma Fezasına Avuştır" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Qapat" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Serlevhasız pencere" + +# tr +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Sınamak ve değiştirmek için pencerenin X pencere kimliği" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +# tr +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "Sınama için uygulamanın grup liderinin X pencere kimliği" + +# tr +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Sınama için sınıf grubunun sınıf kaynağı" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "SINIF" + +# tr +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "Sınamak ya da değiştirmek için çalışma fezası SAYISI" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NUMARA" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "Sınama ya da değiştirmek için ekran NUMARASI" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "--window tahallüsi" + +# tr +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Uygulama/sınıf grubu/çalışma fezası/ekran pencereleri listesi (çıktı biçimi: " +"\"XID: Pencere İsmi\")" + +# tr +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Ekranın çalışma fezaları listesi (çıktı biçimi: \"Numarası: Çalışma Fezası " +"İsmi\")" + +# tr +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Ekranın çalışma fezası sayısını SAYISI olarak değiştir" + +# tr +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Ekranın çalışma fezası düzenini SAYISI satır kullanmak için değiştir" + +# tr +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Ekranın çalışma fezası düzenini SAYISI sütün kullanmak için değiştir" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Masaüstüni köster" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Masaüstüni kösterüvni toqtat" + +# tr +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Mevcut çalışma fezasının görünüm alanını X kordinatından X olarak taşı" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +# tr +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Mevcut çalışma fezasının görünüm alanını Y kordinatından Y olarak taşı" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Pencereni asğariyleştir" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Pencereni ğayrı asğariyleştir" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Pencereni azamiyleştir" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Pencereni ğayrı azamiyleştir" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Pencereni ufqiy olaraq azamiyleştir" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Pencereni ufqiy olaraq ğayrı azamiyleştir" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Pencereni vertikal olaraq azamiyleştir" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Pencereni vertikal olaraq ğayrı azamiyleştir" + +# tr +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Pencereyi klavye ile taşımaya başla" + +# tr +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Pencereyi klavye ile yeniden boyutlandırmaya başla" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Pencereni faalleştir" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Pencereni qapat" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Pencereni tam-ekran yap" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Pencereni tam-ekran tarzından çıqart" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Pencereni her-zaman-üstte yap" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Pencereni her-zaman-üstte-degil yap" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Pencereni diger-pencerelerniñ-altında yap" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Pencereni diger-pencerelerniñ-altında-degil yap" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Pencereni qatalaqla" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Pencereni keri qatalaqla" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Pencereniñ körünim limanındaki mevamını sabit yap" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Pencereniñ körünim limanındaki mevamını sabit yapma" + +# tüklü +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Pencereni saifecilerde körünmez yap" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Pencereni saifecilerde körünir yap" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Pencereni vazife listelerinde körünmez yap" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Pencereni vazife listelerinde körünir yap" + +# tr +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Pencereyi tüm çalışma fezalarında görünür yap" + +# tr +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Pencereyi sadece mevcut çalışma fezasında görünür yap" + +# tr +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Pencereyi SAYISI çalışma fezasına taşı (ilk çalışma fezası 0)" + +# tr +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Pencerenin X kordinatını X olarak değiştir" + +# tr +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Pencerenin Y kordinatını Y olarak değiştir" + +# tr +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Pencerenin genişliğini GENİŞLİK olarak değiştir" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "KENİŞLİK" + +# tr +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Pencerenin yüksekliğini YÜKSEKLİK olarak değiştir" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "YÜKSEKLİK" + +# tr +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Pencerenin türünü TÜR olarak değiştir (geçerli değerler: normal, desktop, " +"dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TÜR" + +# tr +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Çalışma fezasının ismini İSİM olarak değiştir" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "İSİM" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Çalışma fezasını faalleştir" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "%2$s içün keçersiz qıymet -- \"%1$s\"" + +# tr +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: ekran %d etkileşmeli, ancak %s kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: ekran %d pencereleri ya da çalışma fezaları " +"listelenmiş olmalı, ancak -- %s kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: çalışma fezası %d etkileşmeli, ancak -- %s " +"kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: çalışma fezası %d pencereleri listelenmiş ancak " +"-- %s kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: bir uygulama etkileşmeli, ancak -- %s " +"kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: bir uygulamanın pencereleri listelenmeli, ancak --" +"%s kullanılmış\n" + +# tr +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: sınıf grubu \"%s\" etkileşmeli, ancak --%s " +"kullanılmış\n" + +# tr +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: sınıf grubu \"%s\" pencereleri listelenmeli, " +"ancak --%s kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Çakışan seçenekler mevcut: bir pencere etkileşmeli, ancak --%s kullanılmış\n" + +# tr +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Çakışan seçenekler mevcut: --%s ve --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"%2$s içün keçersiz parametr --\"%1$d\": parametr qatiyen müsbet olmalı\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "%2$s içün keçersiz parametr --\"%1$d\": parametr müsbet olmalı\n" + +# tr +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Çakışan seçenekler mevcut: --%s ya da --%s, ve --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "%2$s içün keçersiz parametr --\"%1$s\", keçerli degerler: %3$s\n" + +# tr +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Ekrandaki çalışma fezası düzeni değiştirilemiyor: düzenin zaten sahibi var\n" + +# tr +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Görünüm fezası taşınamadı: mevcut çalışma fezası bir görünüm fezasına sahip " +"değil\n" + +# tr +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Görünüm fezası taşınamadı: mevcut bir çalışma fezası yok\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Amel caiz degil\n" + +# tr +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Pencere çalışma fezası %d üzerine taşınamadı: çalışma fezası mevcut değil\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ekran Numarası: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Endese (kenişlik, yükseklik): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Çalışma Fezası Sayısı: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Çalışma Fezası Serimi (satırlar, sutunlar, yöneldirim): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Pencere İdarecisi: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "yoq" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Faal Çalışma Fezası: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "yoq" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Faal Pencere: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Kösterilgen masaüstü: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "doğru" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "yañlış" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Çalışma Fezası İsmi: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Çalışma Fezası Numarası: %d\n" + +# tr +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Ekranda: %d (Pencere İdarecisi: %s)\n" + +# tüklü +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Körünim-limanı mevamı (x,y): %s\n" + +# tr +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Düzendeki pozisyon (satır, sütun): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Sol Qomşu: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Sağ Qomşu: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Üst Qomşu: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Alt Qomşu: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Sınıf Zümresi Kimligi: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Sınıf Zümresi Adı: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "tesbitli" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "İşaretçikler: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Pencere Sayısı: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "İsim: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "İşaretçik İsmi: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "Esna Kimligi (PID): %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "yoq" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Başlanğıç Kimligi: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "hepsi çalışma fezaları" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Bulunılğan Çalışma Fezası: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "normal pencere" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "masaüstü" + +# tüklü +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "rıhtım yaki panel" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "dialog penceresi" + +# tüklü +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "yırtıp-al alet çubuğı" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "yırtıp-al menü" + +# tüklü +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "qullanışlılıq penceresi" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "saçrama ekranı" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Pencere Türü: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Endese (x,y, kenişlik, yükseklik): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Sınıf Zümresi Misali: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Oturım Kimligi: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Zümre Lideri: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Aşağıdaki içün keçicidir: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "asğariyleştirilgen" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "azamiyleştirilgen" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "ufqiy olaraq azamiyleştirilgen" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "vertikal olaraq azamiyleştirilgen" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "qatalaqlanğan" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "tüyrelgen" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "yapışaq" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "üstünde" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "altında" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "tam-ekran" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "diqqatqa muhtac" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "saifecini atla" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "vazife listesini atla" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Durum: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "taşı" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "kene ölçülendir" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "qatalaqla" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "keri qatalaqla" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "yapış" + +# tüklü +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "yapışma" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "ufqiy olaraq azamiyleştir" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "ufqiy olaraq ğayrı azamiyleştir" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "vertikal olaraq azamiyleştir" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "vertikal olaraq ğayrı azamiyleştir" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "çalışma fezasını deñiştir" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "tüyre" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "tüyerviçsizle" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "asğariyleştir" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "ğayrı asğariyleştir" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "azamiyleştir" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "ğayrı azamiyleştir" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "tam ekran tarzını deñiştir" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "qapat" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "üstünde yap" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "üstündeni lâğu et" + +# tr +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "altında yap" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "altındanı lâğu et" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "hiç bir amel mümkün degil" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Caiz Ameller: %s\n" + +# tr +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Ekranın/çalışma fezasının/pencerenin seçeneklerini yazdır ya da değiştir, ya " +"da EWHM belirtimlerine göre etkileş.\n" +"Bu belirtim hakkında bilgi almak için, \n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec adresine bakın" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Pencerelerni ya da çalışma fezalarını listeleme ihtiyariyatı" + +# tr +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Pencereleri ve çalışma fezalarını listelemek için seçenekleri göster" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Bir pencereniñ hasiyetlerini deñiştirmek içün ihtiyariyat" + +# tr +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Bir pencerenin özelliklerini değiştirmek için seçenekleri göster" + +# tr +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Bir çalışma fezasının özelliklerini değiştirmek için seçenekler" + +# tr +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "" +"Bir çalışma fezasının özelliklerini değiştirmek için seçenekleri göster" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Bir ekrannıñ hasiyetlerini deñiştirmek içün ihtiyariyat" + +# tr +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Bir ekranın özelliklerini değiştirmek için seçenekleri göster" + +# tüklü +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Delillerni ayırıştırğanda hata: %s\n" + +# tr +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Ekran %d ile etkileşim kulurulamıyor: ekran mevcut değil\n" + +# tr +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Çalışma fezası %d etkileşim kurulamadı: çalışma fezası bulunamadı\n" + +# tr +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Sınıf grubu \"%s\" ile etkileşim kurulamadı: sınıf grubu bulunamadı\n" + +# tr +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Grup lideri XID %lu olan uygulama ile etkileşim kurulamadı: uygulama " +"bulunamadı\n" + +# tr +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu olan pencere ile etkileşim kurulamadı: pencere bulunamadı\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "N_SAF saf qullan" + +#~ msgid "N_ROWS" +#~ msgstr "N_SAF" + +#~ msgid "Only show current workspace" +#~ msgstr "Faqat ağımdaki çalışma fezasını köster" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Ög-belgilengen olaraq Sağdan-Solğa yönelişni qullan" + +# tr +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Çalışma fezası içeriği yerine çalışma fezası isimlerini göster" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Vertikal yöneldirimni qullan" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Vazife listesinde pencereni kösterme" + +#~ msgid "Always group windows" +#~ msgstr "Pencerelerni her zaman zümrele" + +#~ msgid "Never group windows" +#~ msgstr "Pencerelerni asla zümreleme" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Hepsi çalışma fezalarından pencerelerni köster" + +#~ msgid "Enable Transparency" +#~ msgstr "Şeffaflıqnı Qabilleştir" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Çoqraq Sınfı: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Zümre İsmi: %s\n" diff --git a/po/cs.gmo b/po/cs.gmo new file mode 100644 index 0000000..0b4d382 Binary files /dev/null and b/po/cs.gmo differ diff --git a/po/cs.po b/po/cs.po new file mode 100644 index 0000000..759aa24 --- /dev/null +++ b/po/cs.po @@ -0,0 +1,1235 @@ +# Czech translation of libwnck. +# Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2006 Miloslav Trmac . +# This file is distributed under the same license as the libwnck package. +# +# Miloslav Trmac , 2002, 2003, 2004, 2005, 2006. +# Petr Kovar , 2007, 2009, 2011. +# Marek Černocký , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-02-17 12:16+0100\n" +"Last-Translator: Marek Černocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"X-Generator: Gtranslator 2.91.6\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplikace bez názvu" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Přepínač pracovních ploch" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Nástroj na přepínání mezi pracovními plochami" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Kliknutím sem se přepnete na pracovní plochu %s" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Kliknutím začnete s přetažením „%s“" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Aktuální pracovní plocha: „%s“" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Kliknutím se přepnete na „%s“" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "Neotevřeno žádné okno" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Výběr oken" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Nástroj na přepínání mezi okny" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Seznam oken" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Nástroj na přepínání mezi viditelnými okny" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "M_inimalizovat vše" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "Zrušit minima_lizaci všech" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "Ma_ximalizovat vše" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "Zrušit _maximalizaci všech" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "_Zavřít vše" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Zrušit mi_nimalizaci" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimalizovat" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Zrušit ma_ximalizaci" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximalizovat" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Plocha %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Plocha 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Plocha %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Přesunout" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Z_měnit velikost" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "_Vždy navrchu" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Vžd_y na viditelné ploše" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Jen na této ploše" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Přesunout na plochu v_levo" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Přesunout na plochu vp_ravo" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Přesunout na plochu na_hoře" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Přesunout na plochu _dole" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Přes_unout na jinou plochu" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Zavřít" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Okno bez názvu" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X-Window okna k vyzkoušení nebo změně" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ID X-Window hlavního okna skupiny aplikace k vyzkoušení" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Zdroj třídy skupiny tříd k vyzkoušení" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "TŘÍDA" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ČÍSLO pracovní plochy k vyzkoušení nebo ke změně" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "ČÍSLO" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "ČÍSLO obrazovky k vyzkoušení nebo ke změně" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alternativní název --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Vypsat okna aplikace/skupiny třídy/pracovní plochy/obrazovky (výstupní " +"formát: „XID: Název okna“)" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Vypsat pracovní plochy obrazovky (výstupní formát: „Číslo: Název pracovní " +"plochy“)" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Změnit počet ploch obrazovky na ČÍSLO" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Změnit rozvržení pracovní plochy obrazovky kvůli použití řádků ČÍSLO" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Změnit rozvržení pracovní plochy obrazovky kvůli použití sloupců ČÍSLO" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Zobrazit pracovní plochu" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Zastavit zobrazování plochy" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Přesunout pohled na aktuální pracovní plochu na souřadnici X označenou X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Přesunout pohled na aktuální pracovní plochu na souřadnici Y označenou Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimalizovat okno" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Zrušit minimalizaci okna" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maximalizovat okno" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Zrušit maximalizaci okna" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maximalizovat okno vodorovně" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Zrušit maximalizaci okna vodorovně" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maximalizovat okno svisle" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Zrušit maximalizaci okno svisle" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Spustit přesunování okna přes klávesnici" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Spustit měnění velikosti okna přes klávesnici" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Aktivovat okno" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Zavřít okno" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Vyplnit oknem celou obrazovku" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Upravit okno tak, aby opustilo režim celé obrazovky" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Upravit okno tak, aby se zobrazovalo vždy navrchu" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Upravit okno tak, aby nebylo vždy navrchu" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Upravit okno tak, aby se snížilo pod jiná okna" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Upravit okno tak, aby nebylo pod jinými okny" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Svinout okno" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Rozvinout okno" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Upravit okno tak, aby mělo pevné umístění v pohledu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Upravit okno tak, aby nemělo pevné umístění v pohledu" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Upravit okno tak, aby se nezobrazovalo v přepínači" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Upravit okno tak, aby se zobrazovalo v přepínači" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Upravit okno tak, aby se nezobrazovalo v seznamech úloh" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Upravit okno tak, aby se zobrazovalo v seznamech úloh" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Upravit okno tak, aby bylo viditelné na všech pracovních plochách" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Upravit okno tak, aby bylo viditelné pouze na aktuální pracovní ploše" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Přesunout okno na pracovní plochu ČÍSLO (první pracovní plocha je 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Změnit souřadnice X okna na X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Změnit souřadnice Y okna na Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Změnit šířku okna na ŠÍŘKA" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "ŠÍŘKA" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Změnit výšku okna na VÝŠKA" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "VÝŠKA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Změnit typ okna na TYP (platné hodnoty: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYP" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Změnit název pracovní plochy na NÁZEV" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NÁZEV" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Aktivovat pracovní plochu" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Neplatná hodnota „%s“ pro --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: s obrazovkou %d by se mělo spolupracovat, " +"ale bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: okna nebo pracovní plochy obrazovky %d by " +"mely být vypsány, ale bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: s pracovní plochou %d by se mělo " +"spolupracovat, ale bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: okna pracovní plochy %d by měla být " +"vypsána, ale bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: s aplikací by se mělo spolupracovat, ale " +"bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: okna aplikace by měla být vypsána, ale bylo " +"použito --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: se skupinou třídy „%s“ by se mělo " +"spolupracovat, ale bylo použito --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: okna skupiny třídy „%s“ by měla být " +"vypsána, ale bylo použito --%s\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Existují neslučitelné přepínače: s oknem by se mělo spolupracovat, ale bylo " +"použito --%s\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Existují neslučitelné přepínače: --%s a --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "Neplatný argument „%d“ pro --%s: argument musí být zásadně kladný\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Neplatný argument „%d“ u --%s: argument musí být kladný\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Existují neslučitelné přepínače: --%s nebo --%s, a --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Neplatný argument „%s“ pro --%s, platné hodnoty jsou: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Nelze změnit rozvržení pracovní plochy na obrazovce: rozvržení je již " +"vlastněno\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Pohled nemůže být přesunut: aktuální pracovní plocha neobsahuje pohled\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Pohled nemůže být přesunut: neexistuje aktuální pracovní plocha\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Akce není povolena\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Okno nemůže být přesunuto na pracovní plochu %d: pracovní plocha neexistuje\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Číslo obrazovky: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometrie (šířka, výška): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Počet pracovních ploch: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Rozvržení pracovní plochy (řádky, sloupce, orientace): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Správce oken: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d („%s“)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "žádná" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktivní pracovní plocha: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "„%s“" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "žádné" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktivní okno: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Zobrazuje se pracovní plocha: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "pravda" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "nepravda" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Název pracovní plochy: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Počet pracovních ploch: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Na obrazovce: %d (správce oken: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Pozice pohledu (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Umístění v rozvržení (řádek, sloupec): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Levý soused: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Pravý soused: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Horní soused: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Dolní soused: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID skupiny třídy: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Název skupiny třídy: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "nastaveno" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikony: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Počet oken: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Název: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Název ikony: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "žádné" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Počáteční ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "všechny pracovní plochy" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Na pracovní ploše: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "běžné okno" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "pracovní plocha" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "dok nebo panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "dialogové okno" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "přemístitelná lišta nástrojů" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "přemístitelná nabídka" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "nástrojové okno" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "úvodní obrazovka" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Typ okna: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometrie (x, y, šířka, výška): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instance třídy: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID sezení: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Role: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Hlavní okno skupiny: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Modální vůči: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimalizované" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maximalizované" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "maximalizované vodorovně" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "maximalizované svisle" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "svinuté" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "připnuté" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "přilepené" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "nahoře" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "dole" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "celá obrazovka" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "vyžaduje pozornost" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "vynechat přepínač" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "vynechat seznam úloh" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "běžné" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Stav: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "přesunout" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "změnit velikost" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "svinout" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "rozvinout" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "přilepit" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "odlepit" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maximalizovat vodorovně" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "zrušit maximalizaci vodorovně" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maximalizovat svisle" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "zrušit maximalizaci svisle" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "změnit pracovní plochu" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "připnout" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "odepnout" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimalizovat" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "zrušit minimalizaci" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maximalizovat" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "zrušit maximalizaci" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "změnit celoobrazovkový režim" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "zavřít" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "vytvořit nahoře" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "zrušit nahoře" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "vytvořit dole" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "zrušit dole" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "žádná akce není možná" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Možné akce: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Vypíše nebo změní vlastnosti obrazovky/pracovní plochy/okna, nebo s nimi " +"spolupracuje – při dodržování specifikace EWMH.\n" +"Informace o této specifikaci viz:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Možnosti vypsání oken nebo pracovních ploch" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Zobrazit možnosti vypsání oken nebo pracovních ploch" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Možnosti změny vlastností okna" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Zobrazit možnosti změny vlastností okna" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Možnosti změny vlastností pracovní plochy" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "Zobrazit možnosti změny vlastností pracovní plochy" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Možnosti změny vlastností obrazovky" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Zobrazit možnosti změny vlastností obrazovky" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Chyba při analyzování argumentů: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Nelze spolupracovat s obrazovkou %d: obrazovka neexistuje\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Nelze spolupracovat s pracovní plochou %d: nelze najít pracovní plochu\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Nelze spolupracovat se skupinou třídy „%s“: skupinu třídy nelze nalézt\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Nelze spolupracovat s aplikací, která má své hlavní okno skupiny s XID %lu: " +"aplikaci nelze nalézt\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Nelze spolupracovat s oknem s XID %lu: okno nelze nalézt\n" \ No newline at end of file diff --git a/po/cy.gmo b/po/cy.gmo new file mode 100644 index 0000000..7a2a9e6 Binary files /dev/null and b/po/cy.gmo differ diff --git a/po/cy.po b/po/cy.po new file mode 100644 index 0000000..a9e5eac --- /dev/null +++ b/po/cy.po @@ -0,0 +1,165 @@ +# Gnome yn Gymraeg. +# This file is distributed under the same license as the libwnck package. +# www.gyfieithu.co.uk , 2003. +# and contributors. +# Dafydd Harries 2003 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-03-02 07:18+0100\n" +"PO-Revision-Date: 2006-03-02 12:50-0000\n" +"Last-Translator: Rhys Jones \n" +"Language-Team: Cymraeg \n" +"Language: cy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Kartouche 0.0.1c - 26 Feb 2003\n" + +#: ../libwnck/application.c:29 +msgid "untitled application" +msgstr "rhaglen ddideitl" + +#: ../libwnck/pager-accessible.c:321 +msgid "Workspace Switcher" +msgstr "Cyfnewidydd Gweithfannau" + +#: ../libwnck/pager-accessible.c:332 +msgid "Tool to switch between workspaces" +msgstr "Erfyn ar gyfer newid rhwng gweithfannau" + +#: ../libwnck/pager-accessible.c:436 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Cliciwch yma i newid i weithfan %s" + +#: ../libwnck/selector.c:221 +msgid "Unknown Window" +msgstr "Ffenest Anhysbys" + +#: ../libwnck/selector.c:729 +msgid "No Windows Open" +msgstr "Dim ffenestr yn agored" + +#: ../libwnck/selector.c:833 +msgid "Window Selector" +msgstr "Dewisydd Ffenestri" + +#: ../libwnck/selector.c:834 +msgid "Tool to switch between windows" +msgstr "Erfyn ar gyfer newid rhwng ffenestri" + +#: ../libwnck/tasklist.c:667 +msgid "Window List" +msgstr "Rhestr Ffenestri" + +#: ../libwnck/tasklist.c:668 +msgid "Tool to switch between visible windows" +msgstr "Erfyn ar gyfer newid rhwng ffenestri gweladwy" + +#: ../libwnck/tasklist.c:2465 +msgid "_Close All" +msgstr "_Cau Pob Un" + +#: ../libwnck/tasklist.c:2480 +msgid "_Minimize All" +msgstr "_Lleihau Pob Un" + +#: ../libwnck/tasklist.c:2491 +msgid "_Unminimize All" +msgstr "Dad_leihau Pob Un" + +#: ../libwnck/window-action-menu.c:260 +msgid "Unmi_nimize" +msgstr "Dad_leihau" + +#: ../libwnck/window-action-menu.c:267 +msgid "Mi_nimize" +msgstr "_Lleihau" + +#: ../libwnck/window-action-menu.c:275 +msgid "Unma_ximize" +msgstr "_Dadehangu" + +#: ../libwnck/window-action-menu.c:282 +msgid "Ma_ximize" +msgstr "_Ehangu" + +#: ../libwnck/window-action-menu.c:302 +msgid "_Only on This Workspace" +msgstr "Ar y Weithfan _Yma'n Unig" + +#: ../libwnck/window-action-menu.c:309 +msgid "_Always on Visible Workspace" +msgstr "Ar y Weithfan Weladwy pob tro" + +#: ../libwnck/window-action-menu.c:463 +#: ../libwnck/workspace.c:237 +#, c-format +msgid "Workspace %d" +msgstr "Gweithfan %d" + +#: ../libwnck/window-action-menu.c:471 +msgid "Workspace 1_0" +msgstr "Gweithfan 1_0" + +#: ../libwnck/window-action-menu.c:473 +#, c-format +msgid "Workspace %s%d" +msgstr "Gweithfan %s%d" + +#: ../libwnck/window-action-menu.c:563 +msgid "On _Top" +msgstr "O _Flaen Popeth" + +#: ../libwnck/window-action-menu.c:572 +msgid "_Move" +msgstr "_Symud" + +#: ../libwnck/window-action-menu.c:579 +msgid "_Resize" +msgstr "Newid _Maint" + +#: ../libwnck/window-action-menu.c:592 +msgid "_Close" +msgstr "_Cau" + +#: ../libwnck/window-action-menu.c:626 +msgid "Move to Workspace _Left" +msgstr "Symud i'r Weithfan i'r _Chwith" + +#: ../libwnck/window-action-menu.c:637 +msgid "Move to Workspace R_ight" +msgstr "Symud i'r Weithfan i'r _Dde" + +#: ../libwnck/window-action-menu.c:648 +msgid "Move to Workspace _Up" +msgstr "Symud i'r Weithfan i _Fyny" + +#: ../libwnck/window-action-menu.c:660 +msgid "Move to Workspace _Down" +msgstr "Symud i'r Weithfan i _Lawr" + +#: ../libwnck/window-action-menu.c:667 +msgid "Move to Another _Workspace" +msgstr "Symud i _Weithfan Arall" + +#: ../libwnck/window-action-menu.c:683 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../libwnck/window.c:35 +msgid "untitled window" +msgstr "ffenestr ddideitl" + +#~ msgid "_Unroll" +#~ msgstr "_Datrholio" +#~ msgid "Roll _Up" +#~ msgstr "Rholio i _Fyny" +#~ msgid "Put on _All Workspaces" +#~ msgstr "Rhoi ar _Pob Gweithfan" + + diff --git a/po/da.gmo b/po/da.gmo new file mode 100644 index 0000000..b2a1022 Binary files /dev/null and b/po/da.gmo differ diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..2f0c5c9 --- /dev/null +++ b/po/da.po @@ -0,0 +1,1237 @@ +# Danish translation of libwnck. +# Copyright (C) 2013. +# This file is distributed under the same license as the libwnck package. +# Ole Laursen , 2002-2005. +# Lasse Bang Mikkelsen , 2006. +# Ask Hjorth Larsen , 2007. +# Kenneth Nielsen , 2008. +# Aputsiaq Niels Janussen , 2011. +# Joe Hansen , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-03-17 16:16+0100\n" +"PO-Revision-Date: 2013-03-17 00:51+0200\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Unavngivet program" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Arbejdsområdeskifter" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Værktøj til at skifte mellem arbejdsområder" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klik her for at skifte til arbejdsområdet %s" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klik for at begynde på at trække \"%s\"" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Nuværende arbejdsområde: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klik for at skifte til \"%s\"" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "Ingen vinduer åbne" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Vinduesvælger" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Værktøj til at skifte mellem vinduer" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Vinduesliste" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Værktøj til at skifte mellem synlige vinduer" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "Mi_nimér alle" + +# der er også "unmaximize" så vi bliver nødt til at skelne +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "_Gendan alle minimerede" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "Ma_ksimér alle" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "G_endan alle maksimerede" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "_Luk alle" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "G_endan" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Min_imér" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Ge_ndan" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ksimér" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Arbejdsområde %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Arbejdsområde 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Arbejdsområde %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Flyt" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Ænd_r størrelse" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Altid _øverst" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Altid på synligt arbejdsområde" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "Kun på _dette arbejdsområde" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Flyt til arbejdsområde mod _venstre" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Flyt til arbejdsområde mod _højre" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Flyt til arbejdsområde _ovenfor" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Flyt til arbejdsområde _nedenfor" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Flyt til andet _arbejdsområde" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Luk" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Unavngivet vindue" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "X vindues-ID for vinduet der undersøges eller modificeres" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "X vindues-ID for gruppelederen af et program der undersøges" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Klasseressource af klassegruppen der undersøges" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "KLASSE" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMMER på det arbejdsområde der undersøges eller modificeres" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMMER for den skærm der undersøges eller modificeres" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alias for --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Opskriv vinduer for programmet/klassegruppen/arbejdsområdet/skærmen " +"(udskriftsformat: \"XID: vinduesnavn\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Opskriv skærmens arbejdsområder (udskriftsformat: \"Nummer: arbejdsområdenavn" +"\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Sæt antallet af arbejdsområder for skærmen til NUMMER" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Sæt layoutet for skærmens arbejdsområder til at benytte NUMMER rækker" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Sæt layoutet for skærmens arbejdsområder til at benytte NUMMER søjler" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Vis skrivebordet" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Hold op med at vise skrivebordet" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Flyt visningsområdet af det aktuelle arbejdsområdet til x-koordinat X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Flyt visningsområdet af det aktuelle arbejdsområdet til y-koordinat Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimér vinduet" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Gendan vinduet fra minimeret tilstand" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maksimér vinduet" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Gendan vinduet fra maksimeret tilstand" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maksimér vinduet vandret" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Gendan vinduet fra vandret maksimeret tilstand" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maksimér vinduet lordret" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Gendan vinduet fra lodret maksimeret tilstand" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Begynd flytning af vinduet med tastaturet" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Begynd størrelsesændring for vinduet med tastaturet" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Aktivér vinduet" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Luk vinduet" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Sæt vinduet til fuldskærmstilstand" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Afslut fuldskærmstilstand for vinduet" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Sæt vinduet til altid at være øverst" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Sæt vinduet til, ikke længere altid at være øverst" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Sæt vinduet til altid at være nederst" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Sæt vinduet til, ikke længere altid at være nederst" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Rul vinduet op" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Rul vinduet ned" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Lad vinduets position være fastlåst i visningsområdet" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Sæt vinduet til, ikke at have fastlåst position i visningsområdet" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Gør vinduet usynligt i skrivebordsoversigter" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Gør vinduet synligt i skrivebordsoversigter" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Gør vinduet usynligt i joblister" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Gør vinduet synligt i joblister" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Gør vinduet synligt i alle arbejdsområder" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Gør vinduet synligt på kun det nuværende arbejdsområde" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Flyt vinduet til arbejdsområde NUMMER (første arbejdsområde er 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Sæt x-koordinaten af vinduet til X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Sæt y-koordinaten af vinduet til Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Sæt bredden af vinduet til BREDDE" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "BREDDE" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Sæt højden af vinduet til HØJDE" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HØJDE" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Sæt typen af vinduet til TYPE (tilladte værdier: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Sæt arbejdsområdenavnet til NAVN" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAVN" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Aktivér arbejdsområdet" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Ugyldig værdi \"%s\" for --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: der skal interageres med skærm %d, men --%s er " +"benyttet\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: vinduer eller arbejdsområder fra skærm %d skal " +"anføres, men --%s er benyttet\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: der skal interageres med arbejdsområdet %d, men " +"--%s er benyttet\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: vinduer fra arbejdsområdet %d skal anføres, men " +"--%s er benyttet\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: der skal interageres med et program, men --%s " +"er benyttet\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: vinduer fra et program skal anføres, men --%s " +"er benyttet\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: der skal interageres med klassegruppen \"%s\", " +"men --%s er benyttet\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: vinduer i klassegruppe \"%s\" skal anføres, men " +"--%s er benyttet\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Der er modstridende tilvalg: der skal interageres med et vindue, men --%s er " +"benyttet\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Der er modstridende tilvalg: --%s og --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Ugyldigt argument \"%d\" for --%s: argumentet skal være strengt positivt\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Ugyldigt argument \"%d\" for --%s: argumentet skal være positivt\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Der er modstridende tilvalg: --%s eller --%s, og --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Ugyldigt argument \"%s\" for --%s, gyldige værdier er: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Kan ikke ændre arbejdsområdelayout på skærmen: layoutet har allerede en " +"ejer\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Visningsområdet kan ikke flyttes: det aktuelle arbejdsområde indeholder ikke " +"et visningsområde\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Visningsområdet kan ikke flyttes: der er ikke noget aktuelt arbejdsområde\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Handlingen er ikke tilladt\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Vinduet kan ikke flyttes til arbejdsområde %d: arbejdsområdet findes ikke\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Skærmnummer: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometri (bredde, højde): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Antal arbejdsområder: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Arbejdsområdelayout (rækker, søjler, orientering): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Vindueshåndtering: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "intet" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktivt arbejdsområde: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "intet" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktivt vindue: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Viser skrivebordet: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "sand" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "falsk" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Arbejdsområdenavn: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Arbejdsområdenummer: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "På skærmen: %d (Vindueshåndtering: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +# dette må være præcist nok selvom der ikke siges "position af visningsområde" +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Visningsposition (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Position i layout (række, søjle): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Venstre nabo: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Højre nabo: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Øvre nabo: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Nedre nabo: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Klassegruppe-ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Navn på klassegruppe: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "angivet" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikoner: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Antal vinduer: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Navn: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ikonnavn: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "ingen" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Opstarts-ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "alle arbejdsområder" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "På arbejdsområde: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "normalt vindue" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "skrivebord" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "dok eller panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "dialogvindue" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "afrivningsværktøjslinje" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "afrivningsmenu" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "værktøjsvindue" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "velkomstskærm" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Vinduestype: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometri (x, y, bredde, højde): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Klasseinstans: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "Sessions-ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Rolle: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Gruppeleder: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transient for: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimeret" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maksimeret" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "maksimeret vandret" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "maksimeret lodret" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "rullet op" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "fastlåst" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "klæbende" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "over" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "under" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "fuldskærm" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "kræver opmærksomhed" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "spring skrivebordsoversigt over" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "spring jobliste over" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Tilstand: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "flyt" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "ændr størrelse" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "rul op" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "rul ned" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "klæb" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "afklæb" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maksimér vandret" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "gendan vandret fra maksimeret tilstand" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maksimér lodret" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "gendan lodret fra maksimeret tilstand" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "skift arbejdsområde" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "fastlås" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "frigør" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimér" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "gendan fra minimeret tilstand" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maksimér" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "gendan fra maksimeret tilstand" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "skift fuldskærmstilstand" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "luk" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "gør øverst" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "gør ikke-øverst" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "gør nederst" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "gør ikke-nederst" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "ingen handling mulig" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Mulige handlinger: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Udskriv eller modificér egenskaberne af skærm/arbejdsområde/vindue, eller " +"manipulér det i henhold til EWMH-specifikationen.\n" +"For information om denne specifikation, se:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Valgmuligheder for at opskrive vinduer eller arbejdsområder" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Vis valgmuligheder for at opskrive vinduer eller arbejdsområder" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Valgmuligheder for at modificere egenskaberne for et vindue" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Vis valgmuligheder for at modificere egenskaberne for et vindue" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Valgmuligheder for at modificere egenskaber for et arbejdsområde" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "Vis valgmuligheder for at modificere egenskaber for et arbejdsområde" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Valgmulighederne for at modificere egenskaberne for en skærm" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Vis valgmulighederne for at modificere egenskaberne for en skærm" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Fejl under fortolkning af argumenter: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Kan ikke interagere med skærm %d: skærmen findes ikke\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Kan ikke interagere med arbejdsområde %d: kan ikke finde arbejdsområdet\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Kan ikke interagere med klassegruppe \"%s\": kan ikke finde klassegruppen\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Kan ikke interagere med programmet hvis gruppeleders XID er %lu: kan ikke " +"finde programmet\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Kan ikke interagere med vindue med XID %lu: kan ikke finde vinduet\n" diff --git a/po/de.gmo b/po/de.gmo new file mode 100644 index 0000000..e1f8233 Binary files /dev/null and b/po/de.gmo differ diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..12999a6 --- /dev/null +++ b/po/de.po @@ -0,0 +1,1300 @@ +# German libwnck translation. +# Copyright (C) 2001-2004, 2007 Free Software Foundation, Inc. +# Christian Meyer , 2001, 2002. +# Christian Neumair , 2002-2004. +# Hendrik Richter , 2006. +# Andre Klapper , 2007-2009. +# Mario Blättermann , 2011, 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-01-03 13:26+0000\n" +"PO-Revision-Date: 2016-01-03 22:30+0100\n" +"Last-Translator: Mario Blättermann \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.6\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Namenlose Anwendung" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Arbeitsflächenumschalter" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Werkzeug, um zwischen den Arbeitsflächen zu wechseln" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klicken Sie hier, um zur Arbeitsfläche %s zu wechseln" + +#: ../libwnck/pager.c:2151 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klicken Sie, um »%s« zu ziehen" + +#: ../libwnck/pager.c:2154 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Aktuelle Arbeitsfläche: »%s«" + +#: ../libwnck/pager.c:2159 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klicken Sie, um zu »%s« zu wechseln" + +#: ../libwnck/selector.c:1182 +msgid "No Windows Open" +msgstr "Keine Fenster offen" + +#: ../libwnck/selector.c:1238 +msgid "Window Selector" +msgstr "Fensterwähler" + +#: ../libwnck/selector.c:1239 +msgid "Tool to switch between windows" +msgstr "Werkzeug, um zwischen Fenstern zu wechseln" + +#: ../libwnck/tasklist.c:601 +msgid "Window List" +msgstr "Fensterliste" + +#: ../libwnck/tasklist.c:602 +msgid "Tool to switch between visible windows" +msgstr "Werkzeug, um zwischen sichtbaren Fenstern zu wechseln" + +#: ../libwnck/tasklist.c:2981 +msgid "Mi_nimize All" +msgstr "Alle m_inimieren" + +#: ../libwnck/tasklist.c:2989 +msgid "Un_minimize All" +msgstr "Alle wieder_herstellen" + +#: ../libwnck/tasklist.c:2997 +msgid "Ma_ximize All" +msgstr "Alle Ma_ximieren" + +#: ../libwnck/tasklist.c:3005 +msgid "_Unmaximize All" +msgstr "Alle wieder_herstellen" + +#: ../libwnck/tasklist.c:3017 +msgid "_Close All" +msgstr "Alle sch_ließen" + +#: ../libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "_Wiederherstellen" + +#: ../libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "_Minimieren" + +#: ../libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "_Wiederherstellen" + +#: ../libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "Ma_ximieren" + +#: ../libwnck/window-action-menu.c:693 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "Arbeitsfläche %d" + +#: ../libwnck/window-action-menu.c:702 ../libwnck/window-action-menu.c:848 +#, c-format +msgid "Workspace 1_0" +msgstr "Arbeitsfläche 1_0" + +#: ../libwnck/window-action-menu.c:704 ../libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "Arbeitsfläche %s%d" + +#: ../libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "_Verschieben" + +#: ../libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "_Größe ändern" + +#: ../libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "Immer im V_ordergrund" + +#: ../libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "Immer auf der _sichtbaren Arbeitsfläche" + +#: ../libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "Nur auf _dieser Arbeitsfläche" + +#: ../libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "Auf Arbeitsfläche _links verschieben" + +#: ../libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "Auf Arbeitsfläche _rechts verschieben" + +#: ../libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "Auf Arbeitsfläche darü_ber verschieben" + +#: ../libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "Auf Arbeitsfläche dar_unter verschieben" + +#: ../libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "Auf a_ndere Arbeitsfläche verschieben" + +#: ../libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "S_chließen" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Namenloses Fenster" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "X-Window-ID des zu bearbeitenden Fensters" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "X-Fenster-ID des Gruppenleiters der zu bearbeitenden Anwendung" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Klassenressource der zu bearbeitenden Klasse" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "KLASSE" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMMER der zu bearbeitenden Arbeitsfläche" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "NUMMER" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMMER des zu bearbeitenden Bildschirms" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Alias von --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Fenster der/s Anwendung/Klassengruppe/Arbeitsfläche/Bildschirms auflisten " +"(Ausgabeformat: »XID: Fenstername«)" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Arbeitsflächen des Bildschirms auflisten (Ausgabeformat: »Nummer: " +"Arbeitsflächenname«)" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Ändert die Anzahl der Arbeitsflächen des Bildschirms zu NUMMER" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Ändert die Arbeitsflächenanordnung des Bildschirms um NUMMER Reihen zu " +"benutzen" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Ändert die Arbeitsflächenanordnung des Bildschirms um NUMMER Spalten zu " +"benutzen" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Desktop anzeigen" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "Anzeigen des Desktops anhalten" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Den Darstellungsbereich der momentanen Arbeitsfläche zur X-Koordinate X " +"verschieben" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Den Darstellungsbereich der momentanen Arbeitsfläche zur Y-Koordinate Y " +"verschieben" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Fenster minimieren" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Fenster wiederherstellen" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Fenster maximieren" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Fenster wiederherstellen" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Fenster horizontal maximieren" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "Fenster horizontal wiederherstellen" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Fenster vertikal maximieren" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "Fenster vertikal wiederherstellen" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "Das Fenster per Tastatur verschieben" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "Die Größe des Fensters per Tastatur verändern" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Fenster aktivieren" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Fenster schließen" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Vollbild-Modus für das Fenster aktivieren" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "Vollbild-Modus für das Fenster beenden" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "Fenster immer im Vordergrund haben" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "Fenster nicht immer im Vordergrund haben" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "Fenster im Hintergrund haben" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "Fenster nicht im Hintergrund haben" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Fenster einrollen" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "Fenster ausrollen" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "Dem Fenster eine feste Position im Darstellungsbereich geben" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Dem Fenster keine feste Position im Darstellungsbereich geben" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "Das Fenster nicht in Arbeitsflächenumschaltern anzeigen" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "Das Fenster in Arbeitsflächenumschaltern anzeigen" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "Fenster nicht in der Fensterliste anzeigen" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "Fenster in der Fensterliste anzeigen" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "Das Fenster auf allen Arbeitsflächen anzeigen" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "Das Fenster nur auf der aktuellen Arbeitsfläche anzeigen" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Das Fenster auf die Arbeitsfläche NUMMER verschieben (erste Arbeitsfläche " +"ist 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "Ändert die X-Koordinate des Fensters zu X" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "Ändert die Y-Koordinate des Fensters zu Y" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "Ändert die Breite des Fensters zu BREITE" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "BREITE" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "Ändert die Höhe des Fensters zu HÖHE" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "HÖHE" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Ändert den Fenstertypen zu TYP (erlaubte Werte: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TYP" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "Ändert den Namen der Arbeitsfläche zu NAME" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "Arbeitsfläche aktivieren" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Ungültiger Wert »%s« für --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Bildschirm %d soll bearbeitet " +"werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Die Fenster oder Arbeitsflächen " +"des Bildschirms %d sollen aufgelistet werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Arbeitsfläche %d soll bearbeitet " +"werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Die Fenster der Arbeitsfläche %d " +"sollen aufgelistet werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Eine Anwendung soll bearbeitet " +"werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Die Fenster einer Anwendung " +"sollen aufgelistet werden, aber es wurde --%s benutzt\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Klassengruppe »%s« soll " +"bearbeitet werden, aber es wurde --%s benutzt\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Die Fenster der Klassengruppe " +"»%s« sollen aufgelistet werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Es bestehen sich widersprechende Optionen: Ein Fenster soll bearbeitet " +"werden, aber es wurde --%s benutzt\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Es bestehen sich widersprechende Optionen: --%s und --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Ungültiges Argument »%d« für --%s: Das Argument muss vollständig positiv " +"sein\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Ungültiges Argument »%d« für --%s: Das Argument muss positiv sein\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Es bestehen sich widersprechende Optionen: --%s oder --%s, und --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Ungültiges Argument »%s« für --%s, gültige Werte sind: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Arbeitsflächenanordnung auf dem Bildschirm konnte nicht geändert werden: Die " +"Gestaltung ist bereits in Benutzung\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Darstellungsbereich kann nicht verschoben werden: Die momentane " +"Arbeitsfläche enthält keinen Darstellungsbereich\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Darstellungsbereich kann nicht verschoben werden: Es existiert keine " +"momentane Arbeitsfläche\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Aktion nicht erlaubt\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Fenster kann nicht auf Arbeitsfläche %d verschoben werden: Die Arbeitsfläche " +"existiert nicht\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Bildschirmnummer: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometrie (Breite, Höhe): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Anzahl der Arbeitsflächen: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Arbeitsflächenanordnung (Zeilen, Spalten, Ausrichtung): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Fenstermanager: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (»%s«)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "keine" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktive Arbeitsfläche: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "»%s«" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "keine" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktives Fenster: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Anzeigen des Desktops: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "wahr" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "falsch" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Name der Arbeitsfläche: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Nummer der Arbeitsfläche: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Auf Bildschirm: %d (Fenstermanager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Position des Darstellungsbereichs (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Position in der Anordnung (Reihe, Spalte): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Linker Nachbar: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Rechter Nachbar: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Oberer Nachbar: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Unterer Nachbar: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Klassengruppen-Kennung: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Klassengruppe-Name: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "gesetzt" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Symbole: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Anzahl der Fenster: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Name: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Symbolname: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "keine" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Startup-ID: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "alle Arbeitsflächen" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Auf Arbeitsfläche: %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "normales Fenster" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "Desktop" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "Dock oder Panel" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "Dialogfenster" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "Abriss-Werkzeugleiste" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "Abriss-Menü" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "Werkzeugfenster" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "Begrüßungsbildschirm" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "Fenstertyp: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometrie (x, y, Breite, Höhe): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Klasseninstanz: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "Sitzungs-ID: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "Rolle: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Gruppenleiter: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transient für: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "minimiert" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "maximiert" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "horizontal maximiert" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "vertikal maximiert" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "eingerollt" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "angeheftet" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "angeheftet" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "vorne" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "hinten" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "Vollbild" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "benötigt Aufmerksamkeit" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "Arbeitsflächenumschalter überspringen" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "Fensterliste überspringen" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Zustand: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "verschieben" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "Größe ändern" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "einrollen" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "ausrollen" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "anheften" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "loslösen" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "horizontal maximieren" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "horizontal wiederherstellen" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "vertikal maximieren" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "vertikal wiederherstellen" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "Arbeitsfläche wechseln" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "anheften" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "loslösen" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "minimieren" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "wiederherstellen" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "maximieren" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "wiederherstellen" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "Vollbild-Modus ändern" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "schließen" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "in den Vordergrund" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "in den Vordergrund rückgängig" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "in den Hintergrund" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "in den Hintergrund rückgängig" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "keine Aktionen verfügbar" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Verfügbare Aktionen: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Drucken oder verändern der Eigenschaften eines Bildschirms/Arbeitsfläche/" +"Fenster, oder hiermit arbeiten, gemäß der EWMH-Spezifikation.\n" +"Für weitere Informationen zu dieser Spezifikation siehe:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "Optionen zum Auflisten von Fenstern oder Arbeitsflächen" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "Optionen zum Auflisten von Fenstern oder Arbeitsflächen anzeigen" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "Optionen zum Verändern der Eigenschaften eines Fensters" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "Optionen zum Verändern der Eigenschaften eines Fensters anzeigen" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "Optionen zum Verändern der Eigenschaften einer Arbeitsfläche" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "Optionen zum Verändern der Eigenschaften einer Arbeitsfläche anzeigen" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "Optionen zum Verändern der Eigenschaften eines Bildschirms" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "Optionen zum Verändern der Eigenschaften eines Bildschirms anzeigen" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Fehler beim Verarbeiten der Argumente: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Kann nicht Bildschirm %d bearbeiten: Der Bildschirm existiert nicht\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Kann nicht Arbeitsfläche %d bearbeiten: Die Arbeitsfläche konnte nicht " +"gefunden werden\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Kann nicht Klassengruppe »%s« bearbeiten: Die Klassengruppe konnte nicht " +"gefunden werden\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Kann nicht Anwendung mit dem Gruppenleiter mit der XID %lu bearbeiten: Die " +"Anwendung konnte nicht gefunden werden\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Kann nicht Fenster mit der XID %lu bearbeiten: Das Fenster konnte nicht " +"gefunden werden\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "N_ROWS-Reihen benutzen" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Nur momentane Arbeitsfläche anzeigen" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Rechts-nach-Links als Vorgaberichtung verwenden" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Namen der Arbeitsfläche anzeigen anstatt deren Inhalte" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Vertikale Ausrichtung benutzen" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Fenster nicht in der Fensterliste anzeigen" + +#~ msgid "Always group windows" +#~ msgstr "Fenster immer gruppieren" + +#~ msgid "Never group windows" +#~ msgstr "Fenster nie gruppieren" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Fenster aller Arbeitsflächen anzeigen" + +#~ msgid "Enable Transparency" +#~ msgstr "Transparenz aktivieren" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Klassenressource: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Gruppenname: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "keine" + +#~ msgid "window|none" +#~ msgstr "keines" + +#~ msgid "startupID|none" +#~ msgstr "keine" diff --git a/po/dz.gmo b/po/dz.gmo new file mode 100644 index 0000000..b393e85 Binary files /dev/null and b/po/dz.gmo differ diff --git a/po/dz.po b/po/dz.po new file mode 100644 index 0000000..fec3e06 --- /dev/null +++ b/po/dz.po @@ -0,0 +1,1226 @@ +# Dzongkha translation of libwnck +# Copyright @ 2006 Free Software Foundation, Inc. +# Mindu Dorji +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.gnome-2-14.dz\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-04-19 03:25+0000\n" +"PO-Revision-Date: 2008-10-14 12:09+0530\n" +"Last-Translator: Dawa pemo \n" +"Language-Team: DZONGKHA \n" +"Language: dz\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1);\n" +"X-Poedit-Language: Dzongkha\n" +"X-Poedit-Country: BHUTAN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "མགོ་མིང་མ་བཏགས་པའི་ གློག་རིམ་" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "ལཱ་གི་ས་སྒོ་ སོར་བསྒྱུར་འབད་མི།" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "ལཱ་གི་ས་སྒོའི་བར་ན་ སོར་བསྒྱུར་འབད་ནིའི་ལག་ཆས།" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "ལཱ་གི་ས་སྒོ་%sལུ་ སོར་བསྒྱུར་འབད་ནི་ལུ་ འདི་ལུ་ཨེབ་གཏང་འབད།" + +#: ../libwnck/pager.c:1908 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" འདྲུད་ནི་འགོ་བཙུགས་ནིའི་དོན་ལས་ ཨེབ་གཏང་འབད་ " + +#: ../libwnck/pager.c:1911 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "ད་ལྟོའི་ ལཱ་གི་ས་སྒོ་ : \"%s\"" + +#: ../libwnck/pager.c:1916 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\" ལུ་ སོར་བསྒྱུར་འབད་ནིའི་དོན་ལུ་ ཨེབ་གཏང་འབད་ " + +#: ../libwnck/selector.c:1171 +msgid "No Windows Open" +msgstr "སྒོ་སྒྲིག་གཅིག་ཡང་ ཁ་མ་ཕྱེ་བས།" + +#: ../libwnck/selector.c:1224 +msgid "Window Selector" +msgstr "སྒོ་སྒྲིག་སེལ་བྱེད།" + +#: ../libwnck/selector.c:1225 +msgid "Tool to switch between windows" +msgstr "སྒོ་སྒྲིག་གི་བར་ན་ སོར་བསྒྱུར་འབད་ནིའི་ལག་ཆས།" + +#: ../libwnck/tasklist.c:727 +msgid "Window List" +msgstr "སྒོ་སྒྲིག་གི་ཐོ་ཡིག།" + +#: ../libwnck/tasklist.c:728 +msgid "Tool to switch between visible windows" +msgstr "མཐོང་ཚུགས་པའི་ སྒོ་སྒྲིག་གི་བར་ན་ སོར་བསྒྱུར་འབད་ནིའི་ལག་ཆས།" + +#: ../libwnck/tasklist.c:3016 +msgid "Mi_nimize All" +msgstr "ཆ་མཉམ་ཆུང་ཀུ་བཟོ་ " + +#: ../libwnck/tasklist.c:3027 +msgid "Un_minimize All" +msgstr "ཆ་མཉམ་ ཀུ་མ་བཟོ་ (_M)" + +#: ../libwnck/tasklist.c:3035 +msgid "Ma_ximize All" +msgstr "ཆ་མཉམ་ སྦོམ་བཟོ་ (_X)" + +#: ../libwnck/tasklist.c:3046 +msgid "_Unmaximize All" +msgstr "ཆ་མཉམ་ སྦོམ་མ་བཟོ་ (_U)" + +#: ../libwnck/tasklist.c:3058 +msgid "_Close All" +msgstr "ཆ་མཉམ་ཁ་བསྡམས།(_C)" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "N_ROWS གྲལ་ཐིག་ཚུ་ ལག་ལེན་འཐབ་ " + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "ཨེན་ གྲལ་ཐིག་ཚུ་ (_R)" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "ད་ལྟོའི་ ལཱ་གི་ས་སྒོ་འདི་གུ་རྐྱངམ་ཅིག་སྟོན་ " + +#: ../libwnck/test-pager.c:17 +#: ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "ཨར་ཊི་ཨེལ་ དེ་ སྔོན་སྒྲིག་ བཀོད་རྒྱ་སྦེ་ལག་ལེན་འཐབ་ " + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "ལཱ་གི་ས་སྒོ་གི་ ནང་དོན་ཚུ་གི་ཚབ་ལུ་ ལཱ་གི་ས་སྒོ་གི་ མིང་ཚུ་སྟོན་" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "ཀེར་ཕྲང་ ཕྱོགས་ ལག་ལེན་འཐབ་ " + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/test-selector.c:12 +#: ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "ལས་ཀའི་ཐོ་ཡིག་ནང་ ཝིན་ཌོ་ མ་སྟོན་ " + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "ཨ་རྟག་རང་ ཝིན་ཌོསི་ སྡེ་ཚན་བཟོ་ " + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "ནམ་རང་འབད་རུང་ ཝིན་ཌིསི་ སྡེ་ཚན་མ་བཟོ་ " + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "ལཱ་གི་ས་སྒོ་ ག་ར་ནང་ལས་ སྒོ་སྒྲིག་སྟོན་ " + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "དྭངས་གསལ་ ལྕོགས་ཅན་བཟོ་ " + +#: ../libwnck/window-action-menu.c:415 +msgid "Unmi_nimize" +msgstr "ཆུང་བཟོ་བཤོལ།(_n)" + +#: ../libwnck/window-action-menu.c:422 +msgid "Mi_nimize" +msgstr "ཆུང་ཀུ་བཟོ།(_n)" + +#: ../libwnck/window-action-menu.c:430 +msgid "Unma_ximize" +msgstr "སྦོམ་བཟོ་བཤོལ།(_x)" + +#: ../libwnck/window-action-menu.c:437 +msgid "Ma_ximize" +msgstr "སྦོམ་བཟོ།(_x)" + +#: ../libwnck/window-action-menu.c:744 +#: ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "ལཱ་གི་ས་སྒོ་%d" + +#: ../libwnck/window-action-menu.c:753 +#: ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace 1_0" +msgstr "ལཱ་གི་ས་སྒོ་ ༡ ༠།(_0)" + +#: ../libwnck/window-action-menu.c:755 +#: ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace %s%d" +msgstr "ལཱ་གི་ས་སྒོ་ %s%d" + +#: ../libwnck/window-action-menu.c:1045 +msgid "_Move" +msgstr "སྤོ།(_M)" + +#: ../libwnck/window-action-menu.c:1052 +msgid "_Resize" +msgstr "ཚད་སླར་སྒྲིག(_R)" + +#: ../libwnck/window-action-menu.c:1061 +msgid "Always On _Top" +msgstr "ཨ་རྟག་རང་ མགོ་ལུ་ (_T)" + +#: ../libwnck/window-action-menu.c:1069 +msgid "_Always on Visible Workspace" +msgstr "ཨ་རྟག་རང་ མཐོང་ཚུགས་པའི་ ལཱ་གི་ས་སྒོ་གུ(_A)" + +#: ../libwnck/window-action-menu.c:1074 +msgid "_Only on This Workspace" +msgstr "ལཱ་གི་ས་སྒོ་འདི་གུ་རྐྱངམ་གཅིག།(_O)" + +#: ../libwnck/window-action-menu.c:1081 +msgid "Move to Workspace _Left" +msgstr "ས་སྒོ་གཡོན་ལུ་སྤོ།(_L)" + +#: ../libwnck/window-action-menu.c:1087 +msgid "Move to Workspace R_ight" +msgstr "ལཱ་གི་ས་སྒོ་གཡས་ལུ་སྤོ།(_i)" + +#: ../libwnck/window-action-menu.c:1093 +msgid "Move to Workspace _Up" +msgstr "ལཱ་གི་ས་སྒོ་ལྟགམ་ལུ་སྤོ།(_U)" + +#: ../libwnck/window-action-menu.c:1099 +msgid "Move to Workspace _Down" +msgstr "ལཱ་གི་ས་སྒོ་འོགམ་ལུ་སྤོ།(_D)" + +#: ../libwnck/window-action-menu.c:1102 +msgid "Move to Another _Workspace" +msgstr "ལཱ་གི་ས་སྒོ་གཞན་ལུ་སྤོ།(_W)" + +#: ../libwnck/window-action-menu.c:1122 +msgid "_Close" +msgstr "ཁ་བསྡམས།(_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "མགོ་མིང་མ་བཏགས་པའི་སྒོ་སྒྲིག་ " + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "བརྟག་དཔྱད་ ཡང་ན་ ལེགས་བཅོས་ འབད་ནིའི་དོན་ལུ་ ཝིན་ཌོ་གི་ ཨེགསི་ ཝིན་ཌོ་ ཨའི་ཌི" + +#: ../libwnck/wnckprop.c:139 +#: ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "ཨེགསི་ཨའི་ཌི་ " + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "བརྟག་དཔྱད་འབད་ནིའི་ གློག་རིམ་གྱི་ སྡེ་ཚན་འགོ་ཁྲིད་པའི་ ཨེགསི་ ཝིན་ཌོ་ ཨའི་ཌི་ " + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "བརྟག་དཔྱད་འབད་ནིའི་ དབྱེ་རིགས་སྡེ་ཚན་གྱི་ དབྱེ་རིགས་ ཐོན་ཁུངས་ " + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "དབྱེ་རིགས་ " + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "བརྟག་དཔྱད་ ཡང་ན་ ལེགས་བཅོས་འབད་ནིའི་ ལཱ་གི་ས་སྒོ་གི་ གྱངས་ཁ་ " + +#: ../libwnck/wnckprop.c:150 +#: ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:169 +#: ../libwnck/wnckprop.c:171 +#: ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:262 +msgid "NUMBER" +msgstr "ཨང་ " + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "བརྟག་དཔྱད་ ཡང་ན་ ལེགས་བཅོས་འབད་ནིའི་ གསལ་གཞིའི་ གྱངས་ཁ་ " + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "ཝིན་ཌེ་གི་མིང་གཞན་ " + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:161 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "གློག་རིམ་/དབྱེ་རིགས་/ལཱ་གི་ས་སྒོ་/གསལ་གཞིའི་ ཐོ་ཡིག་ (output format: \"XID: Window Name\")" + +#: ../libwnck/wnckprop.c:163 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "གསལ་གཞི་གི་ ལཱ་གི་ས་སྒོའི་ ཐོ་ཡིག་ (output format: \"Number: Workspace Name\")" + +#: ../libwnck/wnckprop.c:169 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "གསལ་གཞིའི་ ལཱ་གི་ས་སྒོའི་གྱངས་ཁ་དེ་ NUMBER ལུ་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:171 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "NUMBER གྲལ་ཐིག་ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ གསལ་གཞིའི་ ལཱ་གི་ས་སྒོའི་སྒྲིག་བཀོད་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "NUMBER ཀེར་ཐིག་ ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ གསལ་གཞིའི་ ལཱ་གི་ས་སྒོའི་སྒྲིག་བཀོད་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:175 +msgid "Show the desktop" +msgstr "ཌེཀསི་ཊོཔ་ སྟོན་ " + +#: ../libwnck/wnckprop.c:177 +msgid "Stop showing the desktop" +msgstr "ཌེཀསི་ཊོབ་ སྟོན་ནི་བཀག་བཞག་ " + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:181 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "ད་ལྟོའི་ལཱ་གི་ས་སྒོ་གི་ མཐོང་སྣང་མཐུད་ལམ་དེ་ X coordinate X ལུ་ སྤོ་བཤུད་འབད་ " + +#: ../libwnck/wnckprop.c:181 +#: ../libwnck/wnckprop.c:264 +msgid "X" +msgstr "ཨེགསི་ " + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "ད་ལྟོའི་ལཱ་གི་ས་སྒོ་གི་ མཐོང་སྣང་མཐུད་ལམ་དེ་ Y coordinate Y ལུ་ སྤོ་བཤུད་འབད་ " + +#: ../libwnck/wnckprop.c:185 +#: ../libwnck/wnckprop.c:266 +msgid "Y" +msgstr "ཝའི་ " + +#: ../libwnck/wnckprop.c:191 +msgid "Minimize the window" +msgstr "ཝིན་ཌོ་ ཆུང་ཀུ་བཟོ་ " + +#: ../libwnck/wnckprop.c:193 +msgid "Unminimize the window" +msgstr "ཝིན་ཌོ་ ཆུང་ཀུ་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:195 +msgid "Maximize the window" +msgstr "ཝིན་ཌོ་ སྦོམ་བཟོ་ " + +#: ../libwnck/wnckprop.c:197 +msgid "Unmaximize the window" +msgstr "ཝིན་ཌོ་ སྦོབ་མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize horizontally the window" +msgstr "ཝིན་ཌོ་ ཐད་སྙོམས་སྦེ་ སྦོམ་བཟོ་ " + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize horizontally the window" +msgstr "ཝིན་ཌོ་ ཐད་སྙོམས་སྦེ་ སྦོམ་མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize vertically the window" +msgstr "ཝིན་ཌོ་ ཀེར་ཕྲང་སྦེ་ སྦོམ་བཟོ་ " + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize vertically the window" +msgstr "ཝིན་ཌོ་ ཀེར་འཕྲང་སྦེ་ སྦོམ་མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:207 +msgid "Start moving the window via the keyboard" +msgstr "ཝིན་ཌོ་ ལྡེ་སྒྲོམ་བརྒྱདུ་དེ་ སྤོ་བཤུད་འབད་ནི་འགོ་བཙུགས་ " + +#: ../libwnck/wnckprop.c:209 +msgid "Start resizing the window via the keyboard" +msgstr "ཝིན་ཌོ་ ལྡེ་སྒྲོམ་བརྒྱུད་དེ་ ཚད་བསྐྱར་བཟོ་འབད་ནི་ འགོ་བཙུགས་ " + +#: ../libwnck/wnckprop.c:211 +msgid "Activate the window" +msgstr "ཝིན་ཌོ་ ཤུགས་ལྡན་བཟོ་ " + +#: ../libwnck/wnckprop.c:213 +msgid "Close the window" +msgstr "ཝིན་ཌོ་ཁ་བསྡམས་ " + +#: ../libwnck/wnckprop.c:216 +msgid "Make the window fullscreen" +msgstr "ཝིན་ཌོ་ གསལ་གཞི་གངམ་ བཟོ་ " + +#: ../libwnck/wnckprop.c:218 +msgid "Make the window quit fullscreen mode" +msgstr "ཝིན་དོ་ གསལ་གཞི་གངམ་ ཐབས་ལམ་ སྤང་བཅུག་ " + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window always on top" +msgstr "ཝིན་ཌོ་དེ་ ཨ་རྟག་རང་ རྟག་ལུ་བཟོ་ " + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window not always on top" +msgstr "ཝིན་ཌོ་ ཨ་རྟག་རང་ རྟག་ལུ་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window below other windows" +msgstr "ཝིན་ཌོ་དེ་ ཝིན་ཌོ་ གཞན་ཚུ་གི་འོག་ལུ་ བཟོ་ " + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not below other windows" +msgstr "ཝིན་ཌོ་དེ་ ཝིན་ཌོ་གཞན་ཚུ་གི་འོག་ལུ་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:228 +msgid "Shade the window" +msgstr "ཝིན་ཌོ་ ནག་སྒྲིབ་བཟོ་ " + +#: ../libwnck/wnckprop.c:230 +msgid "Unshade the window" +msgstr "ཝིན་ཌོ་ ནག་གྲིབ་བཤོལ་ " + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:234 +msgid "Make the window have a fixed position in the viewport" +msgstr "མཐོང་སྣང་མཐུད་ལམ་ནང་ ཝིན་ཌོ་ལུ་ གནས་ས་ བརྟན་ཏོག་ཏོ་ ཡོདཔ་སྦེ་བཟོ་ " + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window not have a fixed position in the viewport" +msgstr "མཐོང་སྣང་མཐུད་ལམ་ནང་ ཝིན་ཌོ་ལུ་ གནས་ས་ བརྟན་ཏོག་ཏོ་ མེདཔ་སྦེ་བཟོ་ " + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not appear in pagers" +msgstr "ཝིན་ཌོ་ བརྡ་འཕྲུལ་ཚུ་ནང་མ་ཐོནམ་སྦེ་ བཟོ་ " + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:250 +msgid "Make the window appear in pagers" +msgstr "ཝིན་དོ་ བརྡ་འཕྲུལ་ཚུ་ནང་ ཐོན་བཏུབ་སྦེ་བཟོ་ " + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:253 +msgid "Make the window not appear in tasklists" +msgstr "ཝིན་དོ་ ལས་ཀའི་ཐོ་ཡིག་ནང་ ཐོན་མ་བཏུབ་སྦེ་ བཟོ་ " + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:256 +msgid "Make the window appear in tasklists" +msgstr "ཝིན་དོ་ ལས་ཀའི་ཐོ་ཡིག་ནང་ཐོན་བཏུབ་སྦེ་བཟོ་ " + +#: ../libwnck/wnckprop.c:258 +msgid "Make the window visible on all workspaces" +msgstr "ལཱ་གི་ས་སྒོ་ག་ར་ནང་ ཝིན་ཌོ་ མཐོང་ཚུགསཔ་ བཟོ་ " + +#: ../libwnck/wnckprop.c:260 +msgid "Make the window visible on the current workspace only" +msgstr "ཝིན་ཌོ་དེ་ ད་ལྟོའི་ལཱ་གི་ས་སྒོ་ནང་རྐྱངམ་ཅིག་ མཐོང་ཚུགསཔ་སྦེ་བཟོ་ " + +#: ../libwnck/wnckprop.c:262 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "ཝིན་ཌོ་ ལཱ་གི་་ས་སྒོ་ NUMBER ལུ་ སྤོ་བཤུད་འབད་ (ལཱ་གི་ས་སྒོ་དང་པ་དེ་ ༠ ཨིན)" + +#: ../libwnck/wnckprop.c:264 +msgid "Change the X coordinate of the window to X" +msgstr "ཝིན་ཌོ་གི་ X coordinate དེ་ X ལུ་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:266 +msgid "Change the Y coordinate of the window to Y" +msgstr "ཝིན་ཌོ་གི་ Y coordinate དེ་ Y ལུ་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:268 +msgid "Change the width of the window to WIDTH" +msgstr "ཝིན་ཌོ་གི་ width དེ་ WIDTH ལུ་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:268 +msgid "WIDTH" +msgstr "རྒྱ་ཚད་ " + +#: ../libwnck/wnckprop.c:270 +msgid "Change the height of the window to HEIGHT" +msgstr "ཝིན་ཌོ་གི་ height དེ་ HEIGHT ལུ་བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:270 +msgid "HEIGHT" +msgstr "མཐོ་ཚད་ " + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:273 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "ཝིན་ཌོ་གི་ type དེ་ TYPE ལུ་ བསྒྱུར་བཅོས་འབད་ (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:273 +msgid "TYPE" +msgstr "དབྱེ་བ་ " + +#: ../libwnck/wnckprop.c:279 +msgid "Change the name of the workspace to NAME" +msgstr "ལཱ་གི་ས་སྒོ་གི་ name དེ་ NAME ལུ་བསྒཡུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:279 +msgid "NAME" +msgstr "མིང་ " + +#: ../libwnck/wnckprop.c:281 +msgid "Activate the workspace" +msgstr "ལཱ་གི་ས་སྒོ་ ཤུགས་ལྡན་བཟོ་ " + +#: ../libwnck/wnckprop.c:373 +#: ../libwnck/wnckprop.c:397 +#: ../libwnck/wnckprop.c:433 +#: ../libwnck/wnckprop.c:456 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "ནུས་མེད་ བེ་ལུ་ \"%s\" for --%s" + +#: ../libwnck/wnckprop.c:490 +#: ../libwnck/wnckprop.c:509 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་ : གསལ་གཞི་ %d ཕན་ཚུན་འབྲེལ་བ་འཐབ་དགོཔ་ཨིན་རུང་ -%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#: ../libwnck/wnckprop.c:499 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: སྒོ་སྒྲིག་ ཡང་ན་ གསལ་གཞིའི་ལཱ་གི་ས་སྒོ་ %d དེ་ ཐོ་བཀོད་འབད་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#: ../libwnck/wnckprop.c:522 +#: ../libwnck/wnckprop.c:542 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: ལཱ་གི་ས་སྒོ་ %d ཕན་ཚུན་འབྲེལ་བ་འཐབ་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#: ../libwnck/wnckprop.c:532 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: ལཱ་གི་ས་སྒོ་ %d གི་ སྒོ་སྒྲིག་ ཐོ་བཀོད་འབད་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་\n" + +#: ../libwnck/wnckprop.c:554 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: གློག་རིམ་ཅིག་ ཕན་ཚུན་འབྲེལ་བ་འཐབ་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#: ../libwnck/wnckprop.c:564 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་ : གློག་རིམ་ཅིག་གི་ སྒོ་སྒྲིག་ཐོ་བཀོད་འབད་དགོཔ་ཨིན་རུང་ -%s ལག་ལེན་འཐབ་དེ་འདུག་\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག: དབྱེ་རིགས་སྡེ་ཚན་ \"%s\" ཕན་ཚུན་འབྲེལབ་འཐབ་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:588 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: དབྱེ་རིགས་སྡེ་ཚན་ \"%s\" གི་ སྒོ་སྒྲིག་ཐོ་བཀོད་འབད་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག\n" + +#: ../libwnck/wnckprop.c:600 +#: ../libwnck/wnckprop.c:609 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་: ཝིན་ཌོ་ཅིག་ ཕན་ཚུན་འབྲེལ་བ་འཐབ་དགོཔ་ཨིན་རུང་ --%s ལག་ལེན་འཐབ་དེ་འདུག་ \n" + +#: ../libwnck/wnckprop.c:628 +#: ../libwnck/wnckprop.c:709 +#: ../libwnck/wnckprop.c:756 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "མི་མཐུན་པའི་གདམ་ཁ་ཚུ་འདུག་ : --%s དང་ --%s\n" + +#: ../libwnck/wnckprop.c:667 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "ནུས་མེད་ སྒྲུབ་རྟགས་ \"%d\" དེ་ --%s གི་དོན་ལུ་ : སྒྲུབ་རྟགས་ དེ་ ཡོད་ཆ་སྦེ་ དགོ་ \n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "ནུས་མེད་ སྒྲུབ་རྟགས་ \"%d\" དེ་ --%s གི་དོན་ལུ་ : སྒྲུབ་རྟགས་དེ་ ཡོད་ཆ་སྦེ་དགོ་\n" + +#: ../libwnck/wnckprop.c:775 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "མི་མཐུན་པའི་ གདམ་ཁ་ཚུ་འདུག་ : --%s or --%s, and --%s\n" + +#: ../libwnck/wnckprop.c:807 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "ནུས་མེད་ སྒྲུབ་རྟགས་ \"%s\" དེ --%s གི་ དོན་ལུ་ ནུས་ཅན་གྱི་ བེ་ལུ་ཚུ་་ : %s ཨིན་\n" + +#: ../libwnck/wnckprop.c:850 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "གསལ་གཞི་གུ་ ལཱ་གི་ས་སྒོའི་སྒྲིག་བཀོད་ བསྒྱུར་བཅོས་འབད་མི་བཏུབ་ སྒྲིག་བཀོད་དེ་ ཧེ་མ་ལས་རང་ བདག་བཟུང་འབད་དེ་འདུག་ \n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:884 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "མཐོང་སྣང་མཐུད་ལམ་ སྤོ་བཤུད་འབད་མི་བཏུབ་ ད་ལྟོའི་ ལཱ་གི་ས་སྒོ་ནང་ མཐོང་སྣང་མཐུད་ལམ་མིན་ནུག་\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:890 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "མཐོང་སྣང་མཐུད་ལམ་ སྤོ་བཤུད་འབད་མི་བཏུབ་ ད་ལྟོའི་ ལཱ་གི་ས་སྒོ་མིན་ནུག་ \n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:926 +#: ../libwnck/wnckprop.c:935 +#: ../libwnck/wnckprop.c:944 +#: ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:961 +#: ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:977 +#: ../libwnck/wnckprop.c:1026 +#, c-format +msgid "Action not allowed\n" +msgstr "བྱ་བ་ མི་ཆོག་ \n" + +#: ../libwnck/wnckprop.c:1022 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "ཝིན་ཌོ་ ལཱ་གི་ས་སྒོ་ %d ནང་ སྤོ་བཤུད་འབད་མི་བཏུབ་ ལཱ་གི་ས་སྒོ་དེ་ མིན་ནུག་ \n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1086 +#: ../libwnck/wnckprop.c:1218 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1089 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1109 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1172 +#, c-format +msgid "Screen Number: %d\n" +msgstr "གསལ་གཞིའི་ ཨང་གྲངས་: %d\n" + +#: ../libwnck/wnckprop.c:1174 +#: ../libwnck/wnckprop.c:1255 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ཐིག་རྩིས་ (རྒྱ་ཚད་ མཐོ་ཚད་): %d, %d\n" + +#: ../libwnck/wnckprop.c:1178 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "ལཱ་གི་ས་སྒོ་ཚུ་ : %d\n" + +#: ../libwnck/wnckprop.c:1184 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "ལཱ་གི་ས་སྒོའི་ སྒྲིག་བཀོད་(གྲལ་ཐིག་ ཀེར་ཐིག་ ཕྱོགས་): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1194 +#: ../libwnck/wnckprop.c:1251 +#: ../libwnck/wnckprop.c:1443 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Window Manager: %s\n" +msgstr "ཝིན་ཌོ་ འཛིན་སྐྱོང་པ་ : %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1200 +#: ../libwnck/wnckprop.c:1279 +#: ../libwnck/wnckprop.c:1291 +#: ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 +#: ../libwnck/wnckprop.c:1428 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1205 +#: ../libwnck/wnckprop.c:1284 +#: ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 +#: ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1435 +msgid "workspace|none" +msgstr "ལཱ་གི་ས་སྒོ་/ ཅི་མེད་ " + +#: ../libwnck/wnckprop.c:1206 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "ལཱ་གི་ས་སྒོ་ ཤུགས་ལྡན་: %s\n" + +#: ../libwnck/wnckprop.c:1215 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1227 +msgid "window|none" +msgstr "ཝིན་ཌོ་|ཅི་མེད་" + +#: ../libwnck/wnckprop.c:1228 +#, c-format +msgid "Active Window: %s\n" +msgstr "ཝིན་ཌོ་ ཤུགས་ལྡན་ : %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ཌེཀསི་ཊོཔ་སྟོན་དོ་ : %s\n" + +#: ../libwnck/wnckprop.c:1233 +msgid "true" +msgstr "བདེན་པ་ " + +#: ../libwnck/wnckprop.c:1233 +msgid "false" +msgstr "རྫུན་མ་ " + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "ལཱ་གི་ས་སྒོ་གི་མིང་ : %s\n" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "ལཱ་གི་ས་སྒོ་ ཨང་ : %d\n" + +#: ../libwnck/wnckprop.c:1252 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "གསལ་གཞི་ གུ་ : %d (ཝིན་ཌོ་ འཛིན་སྐྱོང་པ་ : %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1266 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1269 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "མཐོང་སྣང་མཐུད་ལམ་ གནས་ས་ (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "སྒྲིག་བཀོད་ ནང་ གནས་ས་ (གྲལ་ཐིག་ ཀེར་ཐིག་): %d, %d\n" + +#: ../libwnck/wnckprop.c:1285 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "གཡོན་གྱི་ ཁྱིམ་མཚེས་: %s\n" + +#: ../libwnck/wnckprop.c:1297 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "གཡས་ཀྱི་ ཁྱིམ་མཚེས་: %s\n" + +#: ../libwnck/wnckprop.c:1309 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "ལྟག་གི་ཁྱིམ་མཚེས་: %s\n" + +#: ../libwnck/wnckprop.c:1321 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "མཇུག་གི་ཁྱིམ་མཚེས་: %s\n" + +#. Translators: Ressource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1333 +#, c-format +msgid "Resource Class: %s\n" +msgstr "ཐོན་ཁུངས་ དབྱེ་རིགས: %s\n" + +#: ../libwnck/wnckprop.c:1335 +#, c-format +msgid "Group Name: %s\n" +msgstr "སྡེ་ཚན་གྱི་མིང་ : %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1341 +#: ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1419 +msgid "set" +msgstr "ཆ་ཚན་ " + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1344 +#: ../libwnck/wnckprop.c:1368 +#: ../libwnck/wnckprop.c:1375 +#: ../libwnck/wnckprop.c:1405 +#: ../libwnck/wnckprop.c:1412 +#: ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1487 +#: ../libwnck/wnckprop.c:1497 +#: ../libwnck/wnckprop.c:1505 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1345 +#: ../libwnck/wnckprop.c:1369 +#: ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Icons: %s\n" +msgstr "ངོས་དཔར་ཚུ་ : %s\n" + +#: ../libwnck/wnckprop.c:1348 +#: ../libwnck/wnckprop.c:1386 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "སྒོ་སྒྲིག་གི་ གྱངས་ཁ་ : %d\n" + +#: ../libwnck/wnckprop.c:1360 +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Name: %s\n" +msgstr "མིང་ : %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1361 +#: ../libwnck/wnckprop.c:1415 +#, c-format +msgid "Icon Name: %s\n" +msgstr "ངོས་དཔར་མིང་: %s\n" + +#: ../libwnck/wnckprop.c:1376 +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "PID: %s\n" +msgstr "པི་ཨའི་ཌི་: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1383 +msgid "startupID|none" +msgstr "འགོ་བཙུགས་ ཨའི་ཌི/ཅི་མེད་ " + +#: ../libwnck/wnckprop.c:1384 +#, c-format +msgid "Startup ID: %s\n" +msgstr "འགོ་བཙུགས་ ཨའི་ཌི་ : %s\n" + +#: ../libwnck/wnckprop.c:1432 +msgid "all workspaces" +msgstr "ལཱ་གི་ས་སྒོ་ ག་ར་ " + +#: ../libwnck/wnckprop.c:1436 +#, c-format +msgid "On Workspace: %s\n" +msgstr "ལཱ་གི་ས་སྒོ་ : %s གུ་ \n" + +#: ../libwnck/wnckprop.c:1451 +msgid "normal window" +msgstr "སྤྱིར་གཏང་ ཝིན་ཌོ་ " + +#: ../libwnck/wnckprop.c:1454 +msgid "desktop" +msgstr "ཌེཀསི་ཊོཔ་ " + +#: ../libwnck/wnckprop.c:1457 +msgid "dock or panel" +msgstr "ཌོཀ་ ཡང་ན་ པེ་ནཱལ་ " + +#: ../libwnck/wnckprop.c:1460 +msgid "dialog window" +msgstr "ཌའི་ལོག་ ཝིན་ཌོ་ " + +#: ../libwnck/wnckprop.c:1463 +msgid "tearoff toolbar" +msgstr "འཕྲལ་གཏང་ ལག་ཆས་ཕྲ་རིང་ " + +#: ../libwnck/wnckprop.c:1466 +msgid "tearoff menu" +msgstr "འཕྲལ་གཏང་ དཀར་ཆག་ " + +#: ../libwnck/wnckprop.c:1469 +msgid "utility window" +msgstr "སྤྱོད་ཆས་ ཝིན་ཌོ་ " + +#: ../libwnck/wnckprop.c:1472 +msgid "splash screen" +msgstr "སིཔེལེཤ་ གསལ་གཞི་ " + +#: ../libwnck/wnckprop.c:1477 +#, c-format +msgid "Window Type: %s\n" +msgstr "ཝིན་ཌོ་ དབྱེ་བ་ : %s\n" + +#: ../libwnck/wnckprop.c:1480 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ཐིག་རྩིས་ (x, y, རྒྱ་ཚད་ མཐོ་ཚད་): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1489 +#, c-format +msgid "Class Group: %s\n" +msgstr "དབྱེ་རིགས་སྡེ་ཚན་ : %s\n" + +#: ../libwnck/wnckprop.c:1491 +#, c-format +msgid "XID: %lu\n" +msgstr "ཨེགསི་ཨའི་ཌི་ : %lu\n" + +#: ../libwnck/wnckprop.c:1506 +#, c-format +msgid "Session ID: %s\n" +msgstr "ལཱ་ཡུན་ ཨའི་ཌི་ : %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "སྡེ་ཚན་ འགོ་ཁྲིད་པ་ : %lu\n" + +#. Translators: A window can be transient for another window: it means it's on top of it +#: ../libwnck/wnckprop.c:1517 +#, c-format +msgid "Transient for: %lu\n" +msgstr "གི་དོན་ལུ་ ཊཱན་སི་ཡེནཊི་:%lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1532 +#: ../libwnck/wnckprop.c:1579 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1581 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1542 +msgid "minimized" +msgstr "ཆུང་བཟོ་ཡོདཔ་ " + +#: ../libwnck/wnckprop.c:1543 +msgid "maximized" +msgstr "སྦོམ་བཟོ་ཡོདཔ་ " + +#: ../libwnck/wnckprop.c:1547 +msgid "maximized horizontally" +msgstr "ཐད་སྙོམས་སྦེ་ སྦོམ་བཟོ་ཡོདཔ་ " + +#: ../libwnck/wnckprop.c:1549 +msgid "maximized vertically" +msgstr "ཀེར་ཕྲང་སྦེ་ སྦོམ་བཟོ་ཡོདཔ་ " + +#: ../libwnck/wnckprop.c:1551 +msgid "shaded" +msgstr "ནག་གྲིབ་བཟོ་ཡོདཔ་ " + +#: ../libwnck/wnckprop.c:1552 +msgid "pinned" +msgstr "བརྡབ་ཡོདཔ་" + +#: ../libwnck/wnckprop.c:1553 +msgid "sticky" +msgstr "རྩི་ཅན་ " + +#: ../libwnck/wnckprop.c:1554 +msgid "above" +msgstr "ལྟག་ལུ་ " + +#: ../libwnck/wnckprop.c:1555 +msgid "below" +msgstr "འོག་ལུ་ " + +#: ../libwnck/wnckprop.c:1556 +msgid "fullscreen" +msgstr "གསལ་གཞི་གངམ་ " + +#: ../libwnck/wnckprop.c:1557 +msgid "needs attention" +msgstr "དྲན་བཏོན་ དགོ་པས་ " + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1562 +msgid "skip pager" +msgstr "བརྡ་འཕྲུལ་ གོམ་འགྱོ་ " + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:1564 +msgid "skip tasklist" +msgstr "ལས་ཀའི་ ཐོ་ཡིག་ གོམ་འགྱོ་ " + +#: ../libwnck/wnckprop.c:1566 +msgid "normal" +msgstr "སྤྱིར་བཏང་ " + +#: ../libwnck/wnckprop.c:1567 +#, c-format +msgid "State: %s\n" +msgstr "གནས་ལུགས་ : %s\n" + +#: ../libwnck/wnckprop.c:1588 +msgid "move" +msgstr "སྤོ་" + +#: ../libwnck/wnckprop.c:1589 +msgid "resize" +msgstr "ཚད་སླར་སྒྲིག་" + +#: ../libwnck/wnckprop.c:1590 +msgid "shade" +msgstr "ནག་གྲིབ་ " + +#: ../libwnck/wnckprop.c:1591 +msgid "unshade" +msgstr "ནག་གྲིབ་བཤོལ་ " + +#: ../libwnck/wnckprop.c:1592 +msgid "stick" +msgstr "སྦྱར་ " + +#: ../libwnck/wnckprop.c:1593 +msgid "unstick" +msgstr "དཔོག་ " + +#: ../libwnck/wnckprop.c:1595 +msgid "maximize horizontally" +msgstr "ཐད་སྙོམས་སྦེ་ སྦོབ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1597 +msgid "unmaximize horizontally" +msgstr "ཐད་སྙོམས་སྦེ་ སྦོམ་མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1599 +msgid "maximize vertically" +msgstr "ཀེར་ཕྲང་སྦེ་ སྦོམ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1601 +msgid "unmaximize vertically" +msgstr "ཀེར་ཕྲང་སྦེ་ སྦོབ་མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1604 +msgid "change workspace" +msgstr "ལཱ་གི་ས་སྒོ་ བསྒྱུར་བཅོས་ འབད་ " + +#: ../libwnck/wnckprop.c:1606 +msgid "pin" +msgstr "བརྡབ་ " + +#: ../libwnck/wnckprop.c:1608 +msgid "unpin" +msgstr "མ་བརྡབ་ " + +#: ../libwnck/wnckprop.c:1609 +msgid "minimize" +msgstr "ཆུང་ཀུ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1610 +msgid "unminimize" +msgstr "ཆུང་ཀུ་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1611 +msgid "maximize" +msgstr "སྦོམ་བཟོ་" + +#: ../libwnck/wnckprop.c:1612 +msgid "unmaximize" +msgstr "སྦོམ་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1614 +msgid "change fullscreen mode" +msgstr "གསལ་གཞི་གངམ་ ཐབས་ལམ་ བསྒྱུར་བཅོས་འབད་ " + +#: ../libwnck/wnckprop.c:1615 +msgid "close" +msgstr "ཁ་བསྡམས་" + +#: ../libwnck/wnckprop.c:1617 +msgid "make above" +msgstr "ལྟག་གི་བཟོ་ " + +#: ../libwnck/wnckprop.c:1619 +msgid "unmake above" +msgstr "ལྟག་གི་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1621 +msgid "make below" +msgstr "འོག་གི་བཟོ་ " + +#: ../libwnck/wnckprop.c:1623 +msgid "unmake below" +msgstr "འོག་གི་ མ་བཟོ་ " + +#: ../libwnck/wnckprop.c:1625 +msgid "no action possible" +msgstr "བྱ་བ་ ག་ནི་ཡང་ མི་ཆོག་པས་ " + +#: ../libwnck/wnckprop.c:1626 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "ཆོག་པའི་ བྱ་བ་ཚུ་ : %s\n" + +#: ../libwnck/wnckprop.c:1805 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"གལལ་གཞི་/ལཱ་གི་ས་སྒོ་/ཝིན་ཌོ་/ རྒྱུ་དངོས་ཚུ་ དཔར་བསསྐྲུན་ ཡང་ན་ ལེགས་བཅོས་འབད་ ཡང་ན་ EWMH གསལ་བཀོད་དང་འཁྲུལ་ཏེ་ ཕན་ཚུན་འབྲེལ་བ་འབད། \n" +"འདི་གི་ བརྡ་དོན་གྱི་དོན་ལུ་ \n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec བལྟ་ " + +#: ../libwnck/wnckprop.c:1815 +msgid "Options to list windows or workspaces" +msgstr "སྒོ་སྒྲིག་ ཡང་ན་ ལཱ་གི་ས་སྒོ་ཚུ་ཐོ་བཀོད་འབད་ནིའི་དོན་ལས་ གདམ་ཁ་ཚུ་ " + +#: ../libwnck/wnckprop.c:1816 +msgid "Show options to list windows or workspaces" +msgstr "སྒོ་སྒྲིག་ ཡང་ན་ ལཱ་གི་ས་སྒོ་ཚུ་ ཐོ་བཀོད་འབད་ནིའི་དོན་ལུ་ གདམ་ཁ་ཚུ་སྟོན་ " + +#: ../libwnck/wnckprop.c:1823 +msgid "Options to modify properties of a window" +msgstr "ཝིན་ཌོ་གི་ རྒྱུ་དངོས་ཚུ་ ལེགས་བཅོས་འབད་ནིའི་ གདམ་ཁ་ཚུ་ " + +#: ../libwnck/wnckprop.c:1824 +msgid "Show options to modify properties of a window" +msgstr "ཝིན་ཌོ་གི་ རྒྱུ་དངོས་ཚུ་ ལེགས་བཅོས་འབད་ནིའི་དོན་ལས་ གདམ་ཁ་ཚུ་སྟོན་ " + +#: ../libwnck/wnckprop.c:1831 +msgid "Options to modify properties of a workspace" +msgstr "ལཱ་གི་ས་སྒོ་གི་ རྒྱུ་དངོས་ ལེགས་བཅོས་འབད་ནིའི་ གདམ་ཁ་ཚུ་ " + +#: ../libwnck/wnckprop.c:1832 +msgid "Show options to modify properties of a workspace" +msgstr "ལཱ་གི་ས་སྒོའི་ རྒྱུ་དངོས་ཚུ་ ལེགས་བཅོས་འབད་ནིའི་ གདམ་ཁ་ཚུ་སྟོན་ " + +#: ../libwnck/wnckprop.c:1839 +msgid "Options to modify properties of a screen" +msgstr "གསལ་གཞིའི་རྒྱུ་དངོས་ ལེགས་བཅོས་འབད་ནིའི་ གདམ་ཁ་ཚུ་ " + +#: ../libwnck/wnckprop.c:1840 +msgid "Show options to modify properties of a screen" +msgstr "གསལ་གཞིའི་རྒྱུ་དངོས་ ལེགས་བཅོས་འབད་ནིའི་གདམ་ཁ་ཚུ་སྟོན་ " + +#: ../libwnck/wnckprop.c:1851 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "སྒྲུབ་རྟགས་ཚུ་ མིང་དཔྱད་འབད་བའི་སྐབས་ འཛོལ་བ་ : %s\n" + +#: ../libwnck/wnckprop.c:1874 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "གསལ་གཞི་ %d དང་གཅིག་ཁར་ ཕན་ཚུན་འབྲེལ་བ་འབད་མི་ཚུགས་ གསལ་གཞི་དེ་ མི་ཐོབ་\n" + +#: ../libwnck/wnckprop.c:1930 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "ལཱ་གི་ས་སྒོ་ %d དང་གཅིག་ཁར་ཕན་ཚུན་འབྲེལ་བ་འབད་མི་ཚུགས་ ལཱ་གི་ས་སྒོ་དེ་ མི་ཐོབ་\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1953 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "དབྱེ་རིགས་སྡེ་ཚན་ \"%s\": དང་གཅིག་ཁར་ ཕན་ཚུན་འབྲེལ་བ་འབད་མི་ཚུགས་ དབྱེ་རིགས་སྡེ་ཚན་དེ་ མི་ཐོབ་\n" + +#: ../libwnck/wnckprop.c:1976 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "གློག་རིམ་གྱི་སྡེ་ཚན་འཁོ་ཁྲིདཔ་ XID %lu: ཡོད་མི་དང་གཅིག་ཁར་ ཕན་ཚུན་འབྲེལ་བ་འབད་མི་ཚུགས་ གློག་རིམ་དེ་ མི་ཐོབ་ \n" + +#: ../libwnck/wnckprop.c:1999 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu: ཡོད་མི་ ཝིན་ཌོ་དང་གཅིག་ཁར་ ཕན་ཚུན་འབྲེལ་བ་འབད་མི་ཚུགས་པས་ ཝིན་དོ་དེ་ མི་ཐོབ་\n" + +#~ msgid "Unknown Window" +#~ msgstr "ངོ་མ་ཤེས་པའི་སྒོ་སྒྲིག།" +#~ msgid "_Unroll" +#~ msgstr "སྒྲིལ་བཤོལ་འབད།(_U)" +#~ msgid "Roll _Up" +#~ msgstr "སྒྲིལ།(_U)" + diff --git a/po/el.gmo b/po/el.gmo new file mode 100644 index 0000000..d38d6e6 Binary files /dev/null and b/po/el.gmo differ diff --git a/po/el.po b/po/el.po new file mode 100644 index 0000000..3a29e98 --- /dev/null +++ b/po/el.po @@ -0,0 +1,1307 @@ +# translation of el.po to +# translation of el.po to Greek +# Greek translation of libwncj. +# Copyright (C) 2003 GNOME Foundation. +# +# +# simos: 15 messages, 16Aug2002, initial translation. +# kostas: 17 messages, 05Jan2003, updated translation for Gnome 2.1x. +# Simos Xenitellis , 2002,2003. +# Kostas Papadimas , 2003,2004, 2006, 2007. +# Nikos Charonitakis , 2005. +# Jennie Petoumenou , 2009. +msgid "" +msgstr "" +"Project-Id-Version: el\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2014-06-11 21:44+0000\n" +"PO-Revision-Date: 2014-06-15 13:24+0200\n" +"Last-Translator: Maria Mavridou \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.4\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Εφαρμογή χωρίς τίτλο" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Εναλλαγή χώρων εργασίας" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Εργαλείο για εναλλαγή μεταξύ χώρων εργασίας" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Κάντε κλικ εδώ για να μεταφερθείτε στο χώρο εργασίας %s" + +#: ../libwnck/pager.c:2186 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Κλικ για εκκίνηση της μεταφοράς του \"%s\"" + +#: ../libwnck/pager.c:2189 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Τρέχων χώρος εργασίας: \"%s\"" + +#: ../libwnck/pager.c:2194 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Κάντε κλικ για να αλλάξετε στο %s" + +#: ../libwnck/selector.c:1182 +msgid "No Windows Open" +msgstr "Δεν υπάρχουν ανοικτά παράθυρα" + +#: ../libwnck/selector.c:1238 +msgid "Window Selector" +msgstr "Επιλογέας παραθύρων" + +#: ../libwnck/selector.c:1239 +msgid "Tool to switch between windows" +msgstr "Εργαλείο για εναλλαγή μεταξύ παραθύρων" + +#: ../libwnck/tasklist.c:592 +msgid "Window List" +msgstr "Λίστα παραθύρων" + +#: ../libwnck/tasklist.c:593 +msgid "Tool to switch between visible windows" +msgstr "Εργαλείο για εναλλαγή μεταξύ ορατών παραθύρων" + +#: ../libwnck/tasklist.c:2950 +msgid "Mi_nimize All" +msgstr "Ελα_χιστοποίηση όλων" + +#: ../libwnck/tasklist.c:2961 +msgid "Un_minimize All" +msgstr "Μεγιστο_ποίηση όλων" + +#: ../libwnck/tasklist.c:2969 +msgid "Ma_ximize All" +msgstr "Με_γιστοποίηση όλων" + +#: ../libwnck/tasklist.c:2980 +msgid "_Unmaximize All" +msgstr "Α_πομεγιστοποίηση Όλων" + +#: ../libwnck/tasklist.c:2992 +msgid "_Close All" +msgstr "_Κλείσιμο Όλων" + +#: ../libwnck/window-action-menu.c:396 +msgid "Unmi_nimize" +msgstr "Απελαχιστο_ποίηση" + +#: ../libwnck/window-action-menu.c:403 +msgid "Mi_nimize" +msgstr "Ελα_χιστοποίηση" + +#: ../libwnck/window-action-menu.c:411 +msgid "Unma_ximize" +msgstr "Απομεγιστο_ποίηση" + +#: ../libwnck/window-action-menu.c:418 +msgid "Ma_ximize" +msgstr "Με_γιστοποίηση" + +#: ../libwnck/window-action-menu.c:725 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "Χώρος Εργασίας %d" + +#: ../libwnck/window-action-menu.c:734 ../libwnck/window-action-menu.c:881 +#, c-format +msgid "Workspace 1_0" +msgstr "Χώρος Εργασίας 1_0" + +#: ../libwnck/window-action-menu.c:736 ../libwnck/window-action-menu.c:883 +#, c-format +msgid "Workspace %s%d" +msgstr "Χώρος Εργασίας %s%d" + +#: ../libwnck/window-action-menu.c:1025 +msgid "_Move" +msgstr "_Μετακίνηση" + +#: ../libwnck/window-action-menu.c:1032 +msgid "_Resize" +msgstr "Αλλαγή με_γέθους" + +#: ../libwnck/window-action-menu.c:1041 +msgid "Always On _Top" +msgstr "Πάντα στην κο_ρυφή" + +#: ../libwnck/window-action-menu.c:1049 +msgid "_Always on Visible Workspace" +msgstr "_Πάντα σε ορατό χώρο εργασίας" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Only on This Workspace" +msgstr "Μόνο σε αυ_τό το χώρο εργασίας" + +#: ../libwnck/window-action-menu.c:1061 +msgid "Move to Workspace _Left" +msgstr "Μετακίνηση σε χώρο ερ_γασίας αριστερά" + +#: ../libwnck/window-action-menu.c:1067 +msgid "Move to Workspace R_ight" +msgstr "Μετακίνηση σε χώρο εργασίας δε_ξιά" + +#: ../libwnck/window-action-menu.c:1073 +msgid "Move to Workspace _Up" +msgstr "Μετακίνηση σε χώρο εργασίας _πάνω" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Down" +msgstr "Μετακίνηση σε χώρο εργασίας _κάτω" + +#: ../libwnck/window-action-menu.c:1082 +msgid "Move to Another _Workspace" +msgstr "Μετακίνηση σε άλλο χώρο ερ_γασίας" + +#: ../libwnck/window-action-menu.c:1102 +msgid "_Close" +msgstr "_Κλείσιμο" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Παράθυρο χωρίς τίτλο" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "Αναγνωριστικό παραθύρου X του παραθύρου προς εξέταση ή τροποποίηση" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "Αναγνωριστικό παραθύρου X του αρχηγού ομάδας της εφαρμογής για εξέταση" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Πόροι κατηγορίας της κατηγορίας ομάδας προς εξέταση" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "ΚΑΤΗΓΟΡΙΑ" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "Ο ΑΡΙΘΜΟΣ του χώρου εργασίας προς εξέταση ή τροποποίηση " + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "ΑΡΙΘΜΟΣ" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "Ο ΑΡΙΘΜΟΣ της οθόνης προς εξέταση ή τροποποίηση" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Ψευδώνυμο από --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Λίστα από παράθυρα της εφαρμογής/κατηγορίας ομάδας/χώρου εργασίας/οθόνης " +"(μορφή εξόδου: \"XID: Window Name\")" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Λίστα από χώρους εργασίας της οθόνης (μορφή εξόδου: \"Number: Workspace Name" +"\")" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Αλλαγή του αριθμού των χώρων εργασίας της οθόνης σε ΑΡΙΘΜΟ" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Αλλαγή της διάταξης του χώρου εργασίας της οθόνης ώστε να χρησιμοποιεί " +"γραμμές ΑΡΙΘΜΩΝ" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Αλλαγή της διάταξης του χώρου εργασίας της οθόνης ώστε να χρησιμοποιεί " +"στήλες ΑΡΙΘΜΩΝ" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Εμφάνιση της επιφάνειας εργασίας" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "Διακοπή προβολής της επιφάνειας εργασίας" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Μετακίνηση της περιοχής προβολής του τρέχοντα χώρου εργασίας σε Χ " +"συντεταγμένη Χ" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Μετακίνηση της περιοχής προβολής του τρέχοντα χώρου εργασίας σε Y " +"συντεταγμένη Y" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Ελαχιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Απελαχιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Μεγιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Απομεγιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Οριζόντια μεγιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "Οριζόντια απομεγιστοποίηση παραθύρου" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Κάθετη μεγιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "Κάθετη απομεγιστοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "Έναρξη μετακίνησης του παραθύρου μέσω πληκτρολογίου" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "Έναρξη αλλαγής μεγέθους του παραθύρου μέσω του πληκτρολογίου" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Ενεργοποίηση του παραθύρου" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Κλείσιμο του παραθύρου" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Το παράθυρο σε πλήρη οθόνη" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "Το παράθυρο σε έξοδο από τη λειτουργία πλήρους οθόνης" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "Το παράθυρο πάντα μπροστά" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "Το παράθυρο να μην εμφανίζεται πάντα μπροστά" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "Το παράθυρο πάντα πίσω από άλλα παράθυρα" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "Το παράθυρο να μην είναι κάτω από άλλα παράθυρα" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Σκίαση του παραθύρου" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "Άρση σκίασης του παραθύρου" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "Το παράθυρο να έχει προκαθορισμένη θέση στην περιοχή προβολής" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Το παράθυρο να μην έχει προκαθορισμένη θέση στην περιοχή προβολής" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "Το παράθυρο να μην είναι ορατό στους pagers" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "Το παράθυρο να εμφανίζεται στο pager" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "Το παράθυρο να μην εμφανίζεται στις λίστες εργασιών" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "Το παράθυρο να εμφανίζεται στη λίστα εργασιών" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "Το παράθυρο να είναι ορατό σε όλους τους χώρους εργασίας" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "Το παράθυρο να είναι ορατό μόνο στο τρέχοντα χώρο εργασίας" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Μετακίνηση του παραθύρου σε χώρο εργασίας με ΑΡΙΘΜΟ (πρώτος χώρος εργασίας " +"είναι το 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "Αλλαγή της συντεταγμένης X του παραθύρου σε X" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "Αλλαγή της συντεταγμένης Y του παραθύρου σε Y" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "Αλλαγή του πλάτους του παραθύρου σε ΠΛΑΤΟΣ" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "ΠΛΑΤΟΣ" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "Αλλαγή του ύψους του παραθύρου σε ΥΨΟΣ" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "ΥΨΟΣ" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Αλλαγή του τύπου του παραθύρου σε ΤΥΠΟΣ (έγκυρες τιμές είναι : normal, " +"desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "ΤΥΠΟΣ" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "Αλλαγή του ονόματος του χώρου εργασίας σε ΟΝΟΜΑ" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "ΟΝΟΜΑ" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "Ενεργοποίηση του χώρου εργασίας" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Μη έγκυρη τιμή \"%s\" για --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: θα έπρεπε να γίνει επικοινωνία με οθόνη %d, " +"αλλά χρησιμοποιήθηκε η --%s\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: τα παράθυρα ή οι χώροι εργασίας της οθόνης " +"%d θα έπρεπε να είναι σε λίστα, αλλά χρησιμοποιήθηκαν --%s\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: θα έπρεπε να γίνει επικοινωνία με χώρο " +"εργασίας %d, αλλά χρησιμοποιήθηκε ο --%s\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: τα παράθυρα του χώρου εργασίας %d θα " +"έπρεπε να είναι σε λίστα, αλλά χρησιμοποιήθηκαν --%s\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: θα έπρεπε να γίνει επικοινωνία με εφαρμογή, " +"αλλά χρησιμοποιήθηκε η --%s\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: τα παράθυρα μιας εφαρμογής θα έπρεπε να " +"είναι σε λίστα, αλλά χρησιμοποιήθηκαν --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: θα έπρεπε να γίνει επικοινωνία με class " +"group \"%s\", αλλά χρησιμοποιήθηκε η --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: τα παράθυρα του class group \"%s\" θα " +"έπρεπε να είναι σε λίστα, αλλά χρησιμοποιήθηκαν --%s\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Υπάρχουν συγκρουόμενες επιλογές: θα έπρεπε να γίνει επικοινωνία με ένα " +"παράθυρο, αλλά χρησιμοποιήθηκε το --%s\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Υπάρχουν συγκρουόμενες επιλογές:--%s και --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Μη έγκυρο όρισμα \"%d\" για --%s, το όρισμα θα πρέπει να είναι αυστηρά " +"θετικό\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Μη έγκυρο όρισμα \"%d\" για --%s, το όρισμα θα πρέπει να είναι θετικό\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Υπάρχουν συγκρουόμενες επιλογές: --%s ή --%s, και --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Μη έγκυρο όρισμα \"%s\" για --%s, έγκυρες τιμές είναι: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Αδυναμία αλλαγής της διάταξης του χώρου εργασίας στην οθόνη: η διάταξη έχει " +"ήδη ιδιοκτήτη\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Αδυναμία μετακίνησης της περιοχής προβολής: Ο τρέχων χώρος εργασίας δεν " +"περιέχει μια περιοχή προβολής\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Αδυναμία μετακίνησης της περιοχής προβολής: Δεν υπάρχει τρέχων χώρος " +"εργασίας\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Η ενέργεια δεν επιτρέπεται\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Αδυναμία μετακίνησης του παραθύρου στο χώρο εργασίας %d: Ο χώρος εργασίας " +"δεν υπάρχει\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr " (δεν ορίστηκε το όνομα)" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Αριθμός οθόνης: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Γεωμετρία (πλάτος, ύψος): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Αριθμός χώρων εργασίας: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Διάταξη χώρου εργασίας (γραμμές, στήλες, προσανατολισμός): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" +"(δεν υπάρχει διαχειριστής παραθύρου " +"συμβατός με EWMH)" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Διαχειριστής παραθύρου: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "κανένας" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Ενεργός χώρος εργασίας: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "κανένα" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Ενεργό παράθυρο: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Προβολής της επιφάνειας εργασίας: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "true (αληθής)" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "false (ψευδής)" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Όνομα χώρου εργασίας: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Αριθμός χώρου εργασίας: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Στην οθόνη: %d (Διαχείριση παραθύρων: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr " (δεν υπάρχει περιοχή προβολής)" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Θέση περιοχής προβολής (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Θέση στη διάταξη (γραμμή, στήλη): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Γείτονας στα αριστερά: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Γείτονας στα δεξιά: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Πάνω Γείτονας: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Κάτω Γείτονας: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Αναγνωριστικό κατηγορίας ομάδας: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Όνομα κατηγορίας ομάδας: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "ορισμός" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr " (μη ορισμένο)" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Εικονίδια: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Αριθμός από παράθυρα: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Όνομα: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Όνομα εικονιδίου: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "κανένα" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Αναγνωριστικό εκκίνησης: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "όλοι οι χώροι εργασίας" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Σε χώρο εργασίας : %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "κανονικό παράθυρο" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "επιφάνεια εργασίας" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "μπάρα ή πίνακας εφαρμογών" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "παράθυρο διαλόγου" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "αποσπώμενη εργαλειοθήκη" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "αποσπώμενο μενού" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "παράθυρο εργαλείου" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "οθόνη εκκίνησης" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "Τύπος παραθύρου: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Γεωμετρία (x, y, πλάτος ύψος): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Τάξη στιγμιότυπου: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "Αναγνωριστικό συνεδρίας: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "Ρόλος: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Αρχηγός ομάδας: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Παροδικό για: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "ελαχιστοποιημένο" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "μεγιστοποιημένο" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "μεγιστοποιημένο οριζόντια" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "μεγιστοποιημένο κάθετα" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "σκιασμένο" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "καρφιτσωμένο" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "sticky" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "πάνω από" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "κάτω από" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "πλήρης οθόνη" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "χρειάζεται προσοχή" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "παράκαμψη pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "παράκαμψη λίστας εργασιών" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "κανονικό" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Κατάσταση: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "μετακίνηση" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "αλλαγή μεγέθους" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "σκίαση" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "άρση σκίασης" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "stick" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "οριζόντια μεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "οριζόντια απομεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "κάθετη μεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "κάθετη απομεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "αλλαγή χώρου εργασίας" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "καρφίτσωμα" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "αποκαρφίτσωμα" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "ελαχιστοποίηση" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "Απελαχιστοποίηση" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "μεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "απομεγιστοποίηση" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "αλλαγή λειτουργίας πλήρους οθόνης" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "κλείσιμο" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "ορισμός σε πρώτο πλάνο" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "άρση ορισμού σε πρώτο πλάνο" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "ορισμός προς τα κάτω" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "άρση ορισμού προς τα κάτω" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "δεν υπάρχει δυνατή ενέργεια" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Πιθανές ενέργειες: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Εκτύπωση ή τροποποίηση των ιδιοτήτων οθόνης/χώρου εργασίας/παραθύρου, ή " +"επικοινωνία με αυτά, σύμφωνα με το πρότυπο EWMH.\n" +"Για πληροφορίες σχετικά με αυτό το πρότυπο, δείτε:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "Επιλογές για την λίστα παραθύρων ή χώρων εργασίας" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "Προβολή επιλογών για την λίστα παραθύρων ή χώρων εργασίας" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "Επιλογές για την τροποποίηση των ιδιοτήτων ενός παραθύρου" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "Προβολή επιλογών για την τροποποίηση των ιδιοτήτων ενός παραθύρου" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "Επιλογές για την τροποποίηση των ιδιοτήτων του χώρου εργασίας" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "Προβολή επιλογών για την τροποποίηση των ιδιοτήτων ενός χώρου εργασίας" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "Επιλογές για την τροποποίηση των ιδιοτήτων της οθόνης" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "Προβολή επιλογών για την τροποποίηση των ιδιοτήτων της οθόνης" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Σφάλμα κατά την ανάλυση ορισμάτων: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Αδυναμία επικοινωνίας με την οθόνη %d: η οθόνη δεν υπάρχει\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Αδυναμία επικοινωνίας με το χώρο εργασίας %d: π χώρος εργασίας δεν υπάρχει\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Αδυναμία επικοινωνίας με class group \"%s\": το class group δεν υπάρχει\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Αδυναμία επικοινωνίας με την εφαρμογή που έχει αρχηγό ομάδας με XID %lu: η " +"εφαρμογή δεν μπορεί να βρεθεί\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Αδυναμία επικοινωνίας με με παράθυρο με XID %lu: το παράθυρο δεν μπορεί να " +"βρεθεί\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Χρήση γραμμών N_ROWS" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Μόνο σε αυτό το χώρο εργασίας" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Χρήση RTL ως προεπιλογή" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Εμφάνιση ονομάτων χώρων εργασίας αντί για τα περιεχόμενα τους" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Χρήση κάθετου προσανατολισμού" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Να μην εμφανίζεται το παράθυρο στη λίστα εργασιών" + +#~ msgid "Always group windows" +#~ msgstr "Πάντα ομαδοποίηση παραθύρων" + +#~ msgid "Never group windows" +#~ msgstr "Να μην γίνεται ποτέ ομαδοποίηση χαρακτήρων" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Εμφάνιση παραθύρων από όλους τους χώρους εργασίας" + +#~ msgid "Enable Transparency" +#~ msgstr "Ενεργοποίηση διαφάνειας" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Resource Class: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Όνομα ομάδας: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "κανένας" + +#~ msgid "window|none" +#~ msgstr "κανένα" + +#~ msgid "startupID|none" +#~ msgstr "κανένα" diff --git a/po/en@boldquot.header b/po/en@boldquot.header new file mode 100644 index 0000000..fedb6a0 --- /dev/null +++ b/po/en@boldquot.header @@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +# diff --git a/po/en@quot.header b/po/en@quot.header new file mode 100644 index 0000000..a9647fc --- /dev/null +++ b/po/en@quot.header @@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# diff --git a/po/en@shaw.gmo b/po/en@shaw.gmo new file mode 100644 index 0000000..9b754e4 Binary files /dev/null and b/po/en@shaw.gmo differ diff --git a/po/en@shaw.po b/po/en@shaw.po new file mode 100644 index 0000000..f2ab9b7 --- /dev/null +++ b/po/en@shaw.po @@ -0,0 +1,1292 @@ +# Shavian translation for libwnck. +# Copyright (C) 2009 The Gnome Foundation. +# Thomas Thurman , 2009. +msgid "" +msgstr "" +"Project-Id-Version: metacity\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&component=general\n" +"POT-Creation-Date: 2010-04-25 14:34+0000\n" +"PO-Revision-Date: 2010-05-12 18:37 -0400\n" +"Last-Translator: Thomas Thurman \n" +"Language-Team: Shavian \n" +"Language: en@shaw\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#, fuzzy +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Untitled 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯" + +#: ../libwnck/pager-accessible.c:338 +msgid "Workspace Switcher" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑕𐑢𐑦𐑗𐑻" + +#: ../libwnck/pager-accessible.c:349 +msgid "Tool to switch between workspaces" +msgstr "𐑑𐑵𐑤 𐑑 𐑕𐑢𐑦𐑗 𐑚𐑦𐑑𐑢𐑰𐑯 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#, c-format +#: ../libwnck/pager-accessible.c:457 +msgid "Click this to switch to workspace %s" +msgstr "𐑒𐑤𐑦𐑒 𐑞𐑦𐑕 𐑑 𐑕𐑢𐑦𐑗 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %s" + +#, c-format +#: ../libwnck/pager.c:1960 +msgid "Click to start dragging \"%s\"" +msgstr "𐑒𐑤𐑦𐑒 𐑑 𐑕𐑑𐑸𐑑 𐑛𐑮𐑨𐑜𐑦𐑙 \"%s\"" + +#, c-format +#: ../libwnck/pager.c:1963 +msgid "Current workspace: \"%s\"" +msgstr "𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕: \"%s\"" + +#, c-format +#: ../libwnck/pager.c:1968 +msgid "Click to switch to \"%s\"" +msgstr "𐑒𐑤𐑦𐑒 𐑑 𐑕𐑢𐑦𐑗 𐑑 \"%s\"" + +#: ../libwnck/selector.c:1177 +msgid "No Windows Open" +msgstr "𐑯𐑴 𐑢𐑦𐑯𐑛𐑴𐑟 𐑴𐑐𐑩𐑯" + +#, fuzzy +#: ../libwnck/selector.c:1230 +msgid "Window Selector" +msgstr "𐑢𐑦𐑯𐑛𐑴 Selector" + +#: ../libwnck/selector.c:1231 +msgid "Tool to switch between windows" +msgstr "𐑑𐑵𐑤 𐑑 𐑕𐑢𐑦𐑗 𐑚𐑦𐑑𐑢𐑰𐑯 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/tasklist.c:733 +msgid "Window List" +msgstr "𐑢𐑦𐑯𐑛𐑴 𐑤𐑦𐑕𐑑" + +#: ../libwnck/tasklist.c:734 +msgid "Tool to switch between visible windows" +msgstr "𐑑𐑵𐑤 𐑑 𐑕𐑢𐑦𐑗 𐑚𐑦𐑑𐑢𐑰𐑯 𐑝𐑦𐑕𐑦𐑚𐑩𐑤 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/tasklist.c:3062 +msgid "Mi_nimize All" +msgstr "𐑥𐑦_𐑯𐑦𐑥𐑲𐑟 𐑷𐑤" + +#: ../libwnck/tasklist.c:3073 +msgid "Un_minimize All" +msgstr "𐑳𐑯_𐑥𐑦𐑯𐑦𐑥𐑲𐑟 𐑷𐑤" + +#: ../libwnck/tasklist.c:3081 +msgid "Ma_ximize All" +msgstr "𐑥𐑨_𐑒𐑕𐑦𐑥𐑲𐑟 𐑷𐑤" + +#, fuzzy +#: ../libwnck/tasklist.c:3092 +msgid "_Unmaximize All" +msgstr "_Unmaximize 𐑷𐑤" + +#: ../libwnck/tasklist.c:3104 +msgid "_Close All" +msgstr "_𐑒𐑤𐑴𐑕 𐑷𐑤" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "𐑿𐑕 N_ROWS 𐑮𐑴𐑟" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "N_ROWS" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "𐑴𐑯𐑤𐑦 𐑖𐑴 𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#, fuzzy +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "𐑿𐑟 RTL 𐑨𐑟 𐑛𐑦𐑓𐑷𐑤𐑑 𐑛𐑦𐑮𐑧𐑒𐑖𐑩𐑯" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "𐑖𐑴 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑯𐑱𐑥𐑟 𐑦𐑯𐑕𐑑𐑧𐑛 𐑝 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑒𐑪𐑯𐑑𐑩𐑯𐑑𐑕" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "𐑿𐑟 𐑩 𐑝𐑻𐑑𐑦𐑒𐑩𐑤 𐑪𐑮𐑦𐑩𐑯𐑑𐑱𐑖𐑩𐑯" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#, fuzzy +#: ../libwnck/test-selector.c:13 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "𐑛𐑴𐑯𐑑 𐑖𐑴 𐑢𐑦𐑯𐑛𐑴 𐑦𐑯 tasklist" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "𐑷𐑤𐑢𐑱𐑟 𐑜𐑮𐑵𐑐 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "𐑯𐑧𐑝𐑼 𐑜𐑮𐑵𐑐 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "𐑛𐑩𐑕𐑐𐑤𐑱 𐑢𐑦𐑯𐑛𐑴𐑟 𐑓𐑮𐑪𐑥 𐑷𐑤 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "𐑦𐑯𐑱𐑚𐑩𐑤 𐑑𐑮𐑨𐑯𐑕𐑐𐑨𐑮𐑩𐑯𐑕𐑦" + +#: ../libwnck/window-action-menu.c:419 +msgid "Unmi_nimize" +msgstr "𐑳𐑯𐑥𐑦_𐑯𐑦𐑥𐑲𐑟" + +#: ../libwnck/window-action-menu.c:426 +msgid "Mi_nimize" +msgstr "𐑥𐑦_𐑯𐑦𐑥𐑲𐑟" + +#: ../libwnck/window-action-menu.c:434 +msgid "Unma_ximize" +msgstr "𐑳𐑯𐑥𐑨_𐑒𐑕𐑦𐑥𐑲𐑟" + +#: ../libwnck/window-action-menu.c:441 +msgid "Ma_ximize" +msgstr "𐑥𐑨_𐑒𐑕𐑦𐑥𐑲𐑟" + +#, c-format +#: ../libwnck/window-action-menu.c:748 ../libwnck/workspace.c:281 +msgid "Workspace %d" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d" + +#, c-format +#: ../libwnck/window-action-menu.c:757 ../libwnck/window-action-menu.c:904 +msgid "Workspace 1_0" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 1_0" + +#, c-format +#: ../libwnck/window-action-menu.c:759 ../libwnck/window-action-menu.c:906 +msgid "Workspace %s%d" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %s%d" + +#: ../libwnck/window-action-menu.c:1049 +msgid "_Move" +msgstr "_𐑥𐑵𐑝" + +#: ../libwnck/window-action-menu.c:1056 +msgid "_Resize" +msgstr "_𐑮𐑰𐑕𐑲𐑟" + +#: ../libwnck/window-action-menu.c:1065 +msgid "Always On _Top" +msgstr "𐑷𐑤𐑢𐑱𐑟 𐑪𐑯 _𐑑𐑪𐑐" + +#: ../libwnck/window-action-menu.c:1073 +msgid "_Always on Visible Workspace" +msgstr "_𐑷𐑤𐑢𐑱𐑟 𐑪𐑯 𐑝𐑦𐑕𐑦𐑚𐑩𐑤 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/window-action-menu.c:1078 +msgid "_Only on This Workspace" +msgstr "_𐑴𐑯𐑤𐑦 𐑪𐑯 𐑞𐑦𐑕 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace _Left" +msgstr "𐑥𐑵𐑝 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 _𐑤𐑧𐑓𐑑" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace R_ight" +msgstr "𐑥𐑵𐑝 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑮_𐑲𐑑" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Up" +msgstr "𐑥𐑵𐑝 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 _𐑳𐑐" + +#: ../libwnck/window-action-menu.c:1103 +msgid "Move to Workspace _Down" +msgstr "𐑥𐑵𐑝 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 _𐑛𐑬𐑯" + +#: ../libwnck/window-action-menu.c:1106 +msgid "Move to Another _Workspace" +msgstr "𐑥𐑵𐑝 𐑑 𐑩𐑯𐑳𐑞𐑼 _𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/window-action-menu.c:1126 +msgid "_Close" +msgstr "_𐑒𐑤𐑴𐑟" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#, fuzzy +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Untitled 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "X 𐑢𐑦𐑯𐑛𐑴 ID 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 𐑦𐑜𐑟𐑨𐑥𐑦𐑯 𐑹 𐑥𐑪𐑛𐑦𐑓𐑲" + +#, fuzzy +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "X 𐑢𐑦𐑯𐑛𐑴 ID 𐑝 𐑞 𐑜𐑮𐑵𐑐 𐑤𐑰𐑛𐑼 𐑝 𐑩𐑯 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯 𐑑 𐑦𐑜𐑟𐑨𐑥𐑦𐑯" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "𐑒𐑤𐑭𐑕 𐑮𐑦𐑟𐑹𐑕 𐑝 𐑞 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 𐑑 𐑦𐑜𐑟𐑨𐑥𐑦𐑯" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "𐑒𐑤𐑭𐑕" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "𐑯𐑳𐑥𐑚𐑼 𐑝 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑑 𐑦𐑜𐑟𐑨𐑥𐑦𐑯 𐑹 𐑥𐑪𐑛𐑦𐑓𐑲" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "𐑯𐑳𐑥𐑚𐑼" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "𐑯𐑳𐑥𐑚𐑼 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑑 𐑦𐑜𐑟𐑨𐑥𐑦𐑯 𐑹 𐑥𐑪𐑛𐑦𐑓𐑲" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "𐑱𐑤𐑰𐑩𐑕 𐑝 --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, fuzzy +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"𐑤𐑦𐑕𐑑 𐑢𐑦𐑯𐑛𐑴𐑟 𐑝 𐑞 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯/𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐/𐑢𐑻𐑒𐑕𐑐𐑱𐑕/𐑕𐑒𐑮𐑰𐑯 (𐑬𐑑𐑐𐑫𐑑 𐑓𐑹𐑥𐑨𐑑: \"XID: 𐑢𐑦𐑯𐑛𐑴 " +"𐑯𐑱𐑥\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "𐑤𐑦𐑕𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 (𐑬𐑑𐑐𐑫𐑑 𐑓𐑹𐑥𐑨𐑑: \"𐑯𐑳𐑥𐑚𐑼: 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑯𐑱𐑥\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑯𐑳𐑥𐑚𐑼 𐑝 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑑 𐑯𐑳𐑥𐑚𐑼" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑤𐑱𐑬𐑑 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑑 𐑿𐑕 𐑯𐑳𐑥𐑚𐑼 𐑮𐑴𐑟" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑤𐑱𐑬𐑑 𐑝 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑑 𐑿𐑕 𐑯𐑳𐑥𐑚𐑼 𐑒𐑪𐑤𐑩𐑥𐑟" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "𐑖𐑴 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "𐑕𐑑𐑪𐑐 𐑖𐑴𐑦𐑙 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, fuzzy +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "𐑥𐑵𐑝 𐑞 viewport 𐑝 𐑞 𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑑 𐑧𐑒𐑕 𐑒𐑴𐑹𐑛𐑩𐑯𐑱𐑑 𐑧𐑒𐑕" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, fuzzy +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "𐑥𐑵𐑝 𐑞 viewport 𐑝 𐑞 𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑑 𐑢𐑲 𐑒𐑴𐑹𐑛𐑩𐑯𐑱𐑑 𐑢𐑲" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "𐑥𐑦𐑯𐑩𐑥𐑲𐑟 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Unminimize 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Unmaximize 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟 𐑣𐑪𐑮𐑦𐑟𐑪𐑯𐑑𐑩𐑤𐑦 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Unmaximize 𐑣𐑪𐑮𐑦𐑟𐑪𐑯𐑑𐑩𐑤𐑦 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟 𐑝𐑻𐑑𐑦𐑒𐑩𐑤𐑦 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Unmaximize 𐑝𐑻𐑑𐑦𐑒𐑩𐑤𐑦 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "𐑕𐑑𐑸𐑑 𐑥𐑵𐑝𐑦𐑙 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑝𐑲𐑩 𐑞 𐑒𐑰𐑚𐑪𐑮𐑛" + +#, fuzzy +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "𐑕𐑑𐑸𐑑 resizing 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑝𐑲𐑩 𐑞 𐑒𐑰𐑚𐑪𐑮𐑛" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "𐑨𐑒𐑑𐑦𐑝𐑱𐑑 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "𐑒𐑤𐑴𐑟 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 fullscreen" + +#, fuzzy +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑒𐑢𐑦𐑑 fullscreen 𐑥𐑴𐑛" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑷𐑤𐑢𐑱𐑟 𐑪𐑯 𐑑𐑪𐑐" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑯𐑪𐑑 𐑷𐑤𐑢𐑱𐑟 𐑪𐑯 𐑑𐑪𐑐" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑚𐑩𐑤𐑴 𐑳𐑞𐑼 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑯𐑪𐑑 𐑚𐑩𐑤𐑴 𐑳𐑞𐑼 𐑢𐑦𐑯𐑛𐑴𐑟" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "𐑖𐑱𐑛 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Unshade 𐑞 𐑢𐑦𐑯𐑛𐑴" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, fuzzy +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑣𐑨𐑝 𐑩 𐑓𐑦𐑒𐑕𐑑 𐑐𐑩𐑟𐑦𐑖𐑩𐑯 𐑦𐑯 𐑞 viewport" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, fuzzy +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑯𐑪𐑑 𐑣𐑨𐑝 𐑩 𐑓𐑦𐑒𐑕𐑑 𐑐𐑩𐑟𐑦𐑖𐑩𐑯 𐑦𐑯 𐑞 viewport" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑯𐑪𐑑 𐑩𐑐𐑽 𐑦𐑯 𐑐𐑱𐑡𐑻𐑟" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑩𐑐𐑽 𐑦𐑯 𐑐𐑱𐑡𐑻𐑟" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#, fuzzy +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑯𐑪𐑑 𐑩𐑐𐑽 𐑦𐑯 tasklists" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#, fuzzy +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑩𐑐𐑽 𐑦𐑯 tasklists" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑝𐑦𐑕𐑦𐑚𐑩𐑤 𐑪𐑯 𐑷𐑤 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "𐑥𐑱𐑒 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑝𐑦𐑕𐑦𐑚𐑩𐑤 𐑪𐑯 𐑞 𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑴𐑯𐑤𐑦" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "𐑥𐑵𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑯𐑳𐑥𐑚𐑼 (𐑓𐑻𐑕𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑦𐑟 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "𐑗𐑱𐑯𐑡 𐑞 X 𐑒𐑴𐑹𐑛𐑩𐑯𐑱𐑑 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "𐑗𐑱𐑯𐑡 Y 𐑒𐑴𐑹𐑛𐑩𐑯𐑱𐑑 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑢𐑦𐑛𐑔 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 𐑢𐑦𐑛𐑔" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "𐑢𐑦𐑛𐑔" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑣𐑲𐑑 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 𐑣𐑲𐑑" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "𐑣𐑲𐑑" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"𐑗𐑱𐑯𐑡 𐑞 𐑑𐑲𐑐 𐑝 𐑞 𐑢𐑦𐑯𐑛𐑴 𐑑 𐑑𐑲𐑐 (𐑝𐑨𐑤𐑦𐑛 𐑝𐑨𐑤𐑿𐑟: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "𐑑𐑲𐑐" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "𐑗𐑱𐑯𐑡 𐑞 𐑯𐑱𐑥 𐑝 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑑 𐑯𐑱𐑥" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "𐑯𐑱𐑥" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "𐑨𐑒𐑑𐑦𐑝𐑱𐑑 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#, c-format +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +msgid "Invalid value \"%s\" for --%s" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑝𐑨𐑤𐑿 \"%s\" 𐑓𐑹 --%s" + +#, c-format +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +msgid "" +"Conflicting options are present: screen %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑕𐑒𐑮𐑰𐑯 %d 𐑖𐑫𐑛 𐑚𐑰 𐑦𐑯𐑑𐑻𐑨𐑒𐑑𐑩𐑛 𐑢𐑦𐑞, 𐑚𐑳𐑑 --%s 𐑣𐑨𐑟 𐑚𐑰𐑯 " +"𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:510 +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should be " +"listed, but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑢𐑦𐑯𐑛𐑴𐑟 𐑹 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟 𐑝 𐑕𐑒𐑮𐑰𐑯 %d 𐑖𐑫𐑛 𐑚𐑰 𐑤𐑦𐑕𐑑𐑩𐑛, 𐑚𐑳𐑑 " +"--%s 𐑣𐑨𐑟 𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d 𐑖𐑫𐑛 𐑚𐑰 𐑦𐑯𐑑𐑻𐑨𐑒𐑑𐑩𐑛 𐑢𐑦𐑞, 𐑚𐑳𐑑 --%s 𐑣𐑨𐑟 " +"𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:543 +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑢𐑦𐑯𐑛𐑴𐑟 𐑝 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d 𐑖𐑫𐑛 𐑚𐑰 𐑤𐑦𐑕𐑑𐑩𐑛, 𐑚𐑳𐑑 --%s 𐑣𐑨𐑟 " +"𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:565 +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑩𐑯 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯 𐑖𐑫𐑛 𐑚𐑰 𐑦𐑯𐑑𐑻𐑨𐑒𐑑𐑩𐑛 𐑢𐑦𐑞, 𐑚𐑳𐑑 --%s 𐑣𐑨𐑟 " +"𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:575 +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑢𐑦𐑯𐑛𐑴𐑟 𐑝 𐑩𐑯 𐑩𐑐𐑤𐑦𐑒𐑱𐑕𐑩𐑯 𐑖𐑫𐑛 𐑚𐑰 𐑤𐑦𐑕𐑑𐑩𐑛, 𐑚𐑳𐑑 --%s " +"𐑣𐑨𐑟 𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +#: ../libwnck/wnckprop.c:589 +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 \"%s\" 𐑖𐑫𐑛 𐑚𐑰 𐑦𐑯𐑑𐑻𐑨𐑒𐑑𐑩𐑛 𐑢𐑦𐑞, 𐑚𐑳𐑑 --%s " +"𐑣𐑨𐑟 𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +#: ../libwnck/wnckprop.c:601 +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑢𐑦𐑯𐑛𐑴𐑟 𐑝 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 \"%s\" 𐑖𐑫𐑛 𐑚𐑰 𐑤𐑦𐑕𐑑𐑩𐑛, 𐑚𐑳𐑑 " +"--%s 𐑣𐑨𐑟 𐑚𐑰𐑯 𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +msgid "" +"Conflicting options are present: a window should be interacted with, but --%s " +"has been used\n" +msgstr "" +"𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: 𐑩 𐑢𐑦𐑯𐑛𐑴 𐑖𐑫𐑛 𐑚𐑰 𐑦𐑯𐑑𐑻𐑨𐑒𐑑𐑩𐑛 𐑢𐑦𐑞, 𐑚𐑳𐑑 --%s 𐑣𐑨𐑟 𐑚𐑰𐑯 " +"𐑿𐑟𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: --%s 𐑯 --%s\n" + +#, c-format +#: ../libwnck/wnckprop.c:680 +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑸𐑜𐑿𐑥𐑩𐑯𐑑 \"%d\" 𐑓𐑹 --%s: 𐑞 𐑸𐑜𐑿𐑥𐑩𐑯𐑑 𐑥𐑳𐑕𐑑 𐑚𐑰 𐑕𐑑𐑮𐑦𐑒𐑑𐑤𐑦 𐑐𐑪𐑟𐑦𐑑𐑦𐑝\n" + +#, c-format +#: ../libwnck/wnckprop.c:693 +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑸𐑜𐑿𐑥𐑩𐑯𐑑 \"%d\" 𐑓𐑹 --%s: 𐑞 𐑸𐑜𐑿𐑥𐑩𐑯𐑑 𐑥𐑳𐑕𐑑 𐑚𐑰 𐑐𐑪𐑟𐑦𐑑𐑦𐑝\n" + +#, c-format +#: ../libwnck/wnckprop.c:788 +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "𐑒𐑩𐑯𐑓𐑤𐑦𐑒𐑑𐑦𐑙 𐑪𐑐𐑖𐑩𐑯𐑟 𐑸 𐑐𐑮𐑩𐑟𐑧𐑯𐑑: --%s 𐑹 --%s, 𐑯 --%s\n" + +#, c-format +#: ../libwnck/wnckprop.c:820 +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "𐑦𐑯𐑝𐑨𐑤𐑦𐑛 𐑸𐑜𐑿𐑥𐑩𐑯𐑑 \"%s\" 𐑓𐑹 --%s, 𐑝𐑨𐑤𐑦𐑛 𐑝𐑨𐑤𐑿𐑟 𐑸: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:863 +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑗𐑱𐑯𐑡 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑤𐑱𐑬𐑑 𐑪𐑯 𐑞 𐑕𐑒𐑮𐑰𐑯: 𐑞 𐑤𐑱𐑬𐑑 𐑦𐑟 𐑷𐑤𐑮𐑧𐑛𐑦 𐑴𐑯𐑛\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, fuzzy, c-format +#: ../libwnck/wnckprop.c:898 +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "𐑢𐑦𐑯𐑛𐑴 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑥𐑵𐑝𐑛 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d: 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑧𐑒𐑟𐑦𐑕𐑑\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, c-format +#, fuzzy +#: ../libwnck/wnckprop.c:905 +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Viewport 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑥𐑵𐑝𐑛: 𐑞𐑺 𐑦𐑟 𐑯𐑴 𐑒𐑳𐑮𐑩𐑯𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#, c-format +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +msgid "Action not allowed\n" +msgstr "𐑨𐑒𐑖𐑩𐑯 𐑯𐑪𐑑 𐑩𐑤𐑬𐑛\n" + +#, c-format +#: ../libwnck/wnckprop.c:1037 +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "𐑢𐑦𐑯𐑛𐑴 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑥𐑵𐑝𐑛 𐑑 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d: 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑧𐑒𐑟𐑦𐑕𐑑\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "<𐑯𐑱𐑥 𐑩𐑯𐑕𐑧𐑑>" + +#. Translators: %lu is a window number and %s a window name +#, c-format +#: ../libwnck/wnckprop.c:1104 +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +#: ../libwnck/wnckprop.c:1124 +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1187 +msgid "Screen Number: %d\n" +msgstr "𐑕𐑒𐑮𐑰𐑯 𐑯𐑳𐑥𐑚𐑼: %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +msgid "Geometry (width, height): %d, %d\n" +msgstr "𐑡𐑦𐑪𐑥𐑩𐑑𐑮𐑦 (𐑢𐑦𐑛𐑔, 𐑣𐑲𐑑): %d, %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1193 +msgid "Number of Workspaces: %d\n" +msgstr "𐑯𐑳𐑥𐑚𐑼 𐑝 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟: %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1199 +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑤𐑱𐑬𐑑 (𐑮𐑴𐑟, 𐑒𐑪𐑤𐑩𐑥𐑟, 𐑪𐑮𐑦𐑩𐑯𐑑𐑱𐑖𐑩𐑯): %d, %d, %s\n" + +#, fuzzy +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "<𐑯𐑴 EWMH-𐑒𐑩𐑥𐑐𐑤𐑲𐑩𐑯𐑑 𐑢𐑦𐑯𐑛𐑴 𐑥𐑨𐑯𐑩𐑡𐑼>" + +#, c-format +#: ../libwnck/wnckprop.c:1210 +msgid "Window Manager: %s\n" +msgstr "𐑢𐑦𐑯𐑛𐑴 𐑥𐑨𐑯𐑩𐑡𐑼: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1445 +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "𐑯𐑳𐑯" + +#, c-format +#: ../libwnck/wnckprop.c:1221 +msgid "Active Workspace: %s\n" +msgstr "𐑨𐑒𐑑𐑦𐑝 𐑢𐑻𐑒𐑕𐑐𐑱𐑕: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1230 +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#, c-format +#: ../libwnck/wnckprop.c:1236 +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "𐑯𐑳𐑯" + +#, c-format +#: ../libwnck/wnckprop.c:1243 +msgid "Active Window: %s\n" +msgstr "𐑨𐑒𐑑𐑦𐑝 𐑢𐑦𐑯𐑛𐑴: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1246 +msgid "Showing the desktop: %s\n" +msgstr "𐑖𐑴𐑦𐑙 𐑞 𐑛𐑧𐑕𐑒𐑑𐑪𐑐: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "𐑑𐑮𐑵" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "𐑓𐑷𐑤𐑕" + +#, c-format +#: ../libwnck/wnckprop.c:1259 +msgid "Workspace Name: %s\n" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑯𐑱𐑥: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1260 +msgid "Workspace Number: %d\n" +msgstr "𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑯𐑳𐑥𐑚𐑼: %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1461 +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "𐑪𐑯 𐑕𐑒𐑮𐑰𐑯: %d (𐑢𐑦𐑯𐑛𐑴 𐑥𐑨𐑯𐑩𐑡𐑼: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#, fuzzy +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "<𐑯𐑴 viewport>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#, c-format +#, fuzzy +#: ../libwnck/wnckprop.c:1286 +msgid "Viewport position (x, y): %s\n" +msgstr "Viewport 𐑐𐑩𐑟𐑦𐑖𐑩𐑯 (𐑧𐑒𐑕, 𐑢𐑲): %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1289 +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "𐑐𐑩𐑟𐑦𐑖𐑩𐑯 𐑦𐑯 𐑤𐑱𐑬𐑑 (𐑮𐑴, 𐑒𐑪𐑤𐑩𐑥): %d, %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1302 +msgid "Left Neighbor: %s\n" +msgstr "𐑤𐑧𐑓𐑑 𐑯𐑱𐑚𐑼: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1314 +msgid "Right Neighbor: %s\n" +msgstr "𐑮𐑲𐑑 𐑯𐑱𐑚𐑼: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1326 +msgid "Top Neighbor: %s\n" +msgstr "𐑑𐑪𐑐 𐑯𐑱𐑚𐑼: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1338 +msgid "Bottom Neighbor: %s\n" +msgstr "𐑚𐑪𐑑𐑫𐑥 𐑯𐑱𐑚𐑼: %s\n" + +#. Translators: Resource class is the name to identify a class. +#, c-format +#: ../libwnck/wnckprop.c:1350 +msgid "Resource Class: %s\n" +msgstr "𐑮𐑦𐑟𐑹𐑕 𐑒𐑤𐑭𐑕: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1352 +msgid "Group Name: %s\n" +msgstr "𐑜𐑮𐑵𐑐 𐑯𐑱𐑥: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "𐑕𐑧𐑑" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "<𐑩𐑯𐑕𐑧𐑑>" + +#, c-format +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "Icons: %s\n" +msgstr "𐑲𐑒𐑪𐑯𐑟: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1403 +msgid "Number of Windows: %d\n" +msgstr "𐑯𐑳𐑥𐑚𐑼 𐑝 𐑢𐑦𐑯𐑛𐑴𐑟: %d\n" + +#, c-format +#: ../libwnck/wnckprop.c:1377 ../libwnck/wnckprop.c:1423 +msgid "Name: %s\n" +msgstr "𐑯𐑱𐑥: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#, c-format +#: ../libwnck/wnckprop.c:1378 ../libwnck/wnckprop.c:1432 +msgid "Icon Name: %s\n" +msgstr "𐑲𐑒𐑪𐑯 𐑯𐑱𐑥: %s\n" + +#, fuzzy, c-format +#: ../libwnck/wnckprop.c:1393 ../libwnck/wnckprop.c:1516 +msgid "PID: %s\n" +msgstr "%d: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "𐑯𐑳𐑯" + +#, c-format +#: ../libwnck/wnckprop.c:1401 +msgid "Startup ID: %s\n" +msgstr "𐑕𐑑𐑸𐑑𐑳𐑐 ID: %s\n" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "𐑷𐑤 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#, c-format +#: ../libwnck/wnckprop.c:1453 +msgid "On Workspace: %s\n" +msgstr "𐑪𐑯 𐑢𐑻𐑒𐑕𐑐𐑱𐑕: %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "𐑯𐑹𐑥𐑩𐑤 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "𐑛𐑧𐑕𐑒𐑑𐑪𐑐" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "𐑛𐑭𐑒 𐑹 𐑐𐑨𐑯𐑩𐑤" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "𐑛𐑲𐑩𐑤𐑪𐑜 𐑢𐑦𐑯𐑛𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "tearoff 𐑑𐑵𐑤𐑚𐑸" + +#, fuzzy +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "tearoff 𐑥𐑧𐑯𐑿" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "𐑘𐑵𐑑𐑦𐑤𐑩𐑑𐑰 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "𐑕𐑐𐑤𐑨𐑖 𐑕𐑒𐑮𐑰𐑯" + +#, c-format +#: ../libwnck/wnckprop.c:1494 +msgid "Window Type: %s\n" +msgstr "𐑢𐑦𐑯𐑛𐑴 𐑑𐑲𐑐: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1497 +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "𐑡𐑦𐑪𐑥𐑩𐑑𐑮𐑦 (x, y, 𐑢𐑦𐑛𐑔, 𐑣𐑲𐑑): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#, c-format +#: ../libwnck/wnckprop.c:1507 +msgid "Class Group: %s\n" +msgstr "𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐: %s\n" + +#, c-format +#, fuzzy +#: ../libwnck/wnckprop.c:1509 +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#, c-format +#: ../libwnck/wnckprop.c:1524 +msgid "Session ID: %s\n" +msgstr "𐑕𐑧𐑖𐑩𐑯 ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#, c-format +#: ../libwnck/wnckprop.c:1531 +msgid "Group Leader: %lu\n" +msgstr "𐑜𐑮𐑵𐑐 𐑤𐑰𐑛𐑼: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#, c-format +#: ../libwnck/wnckprop.c:1537 +msgid "Transient for: %lu\n" +msgstr "𐑑𐑮𐑨𐑯𐑠𐑩𐑯𐑑 𐑓𐑹: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#, c-format +#: ../libwnck/wnckprop.c:1552 ../libwnck/wnckprop.c:1600 +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "𐑥𐑦𐑯𐑩𐑥𐑲𐑟𐑛" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟𐑛" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟𐑛 𐑣𐑪𐑮𐑦𐑟𐑪𐑯𐑑𐑩𐑤𐑦" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟𐑛 𐑝𐑻𐑑𐑦𐑒𐑩𐑤𐑦" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "𐑖𐑱𐑛𐑩𐑛" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "𐑐𐑦𐑯𐑛" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "𐑕𐑑𐑦𐑒𐑦" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "𐑩𐑚𐑳𐑝" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "𐑚𐑩𐑤𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "fullscreen" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "𐑯𐑰𐑛𐑟 𐑩𐑑𐑧𐑯𐑖𐑩𐑯" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "𐑕𐑒𐑦𐑐 𐑐𐑱𐑡𐑻" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#, fuzzy +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "𐑕𐑒𐑦𐑐 tasklist" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "𐑯𐑹𐑥𐑩𐑤" + +#, c-format +#: ../libwnck/wnckprop.c:1588 +msgid "State: %s\n" +msgstr "𐑕𐑑𐑱𐑑: %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "𐑥𐑵𐑝" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "𐑮𐑰𐑕𐑲𐑟" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "𐑖𐑱𐑛" + +#, fuzzy +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "unshade" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "𐑕𐑑𐑦𐑒" + +#, fuzzy +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟 𐑣𐑪𐑮𐑦𐑟𐑪𐑯𐑑𐑩𐑤𐑦" + +#, fuzzy +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "unmaximize 𐑣𐑪𐑮𐑦𐑟𐑪𐑯𐑑𐑩𐑤𐑦" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟 𐑝𐑻𐑑𐑦𐑒𐑩𐑤𐑦" + +#, fuzzy +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "unmaximize 𐑝𐑻𐑑𐑦𐑒𐑩𐑤𐑦" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "𐑗𐑱𐑯𐑡 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "𐑐𐑦𐑯" + +#, fuzzy +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "unpin" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "𐑥𐑦𐑯𐑩𐑥𐑲𐑟" + +#, fuzzy +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "unminimize" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "𐑥𐑨𐑒𐑕𐑩𐑥𐑲𐑟" + +#, fuzzy +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "unmaximize" + +#, fuzzy +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "𐑗𐑱𐑯𐑡 fullscreen 𐑥𐑴𐑛" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "𐑒𐑤𐑴𐑟" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "𐑥𐑱𐑒 𐑩𐑚𐑳𐑝" + +#, fuzzy +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "unmake 𐑩𐑚𐑳𐑝" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "𐑥𐑱𐑒 𐑚𐑩𐑤𐑴" + +#, fuzzy +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "unmake 𐑚𐑩𐑤𐑴" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "𐑯𐑴 𐑨𐑒𐑖𐑩𐑯 𐑐𐑪𐑕𐑩𐑚𐑩𐑤" + +#, c-format +#: ../libwnck/wnckprop.c:1647 +msgid "Possible Actions: %s\n" +msgstr "𐑐𐑪𐑕𐑩𐑚𐑩𐑤 𐑨𐑒𐑖𐑩𐑯𐑟: %s\n" + +#, fuzzy +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with " +"it, following the EWMH specification.\nFor information about this " +"specification, see:\n\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"𐑐𐑮𐑦𐑯𐑑 𐑹 𐑥𐑪𐑛𐑦𐑓𐑲 𐑞 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑕𐑒𐑮𐑰𐑯/𐑢𐑻𐑒𐑕𐑐𐑱𐑕/𐑢𐑦𐑯𐑛𐑴, 𐑹 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑦𐑑, 𐑓𐑪𐑤𐑴𐑦𐑙 𐑞 " +"EWMH 𐑕𐑐𐑧𐑕𐑦𐑓𐑦𐑒𐑱𐑖𐑩𐑯.\n𐑓𐑹 𐑦𐑯𐑓𐑼𐑥𐑱𐑖𐑩𐑯 𐑩𐑚𐑬𐑑 𐑞𐑦𐑕 𐑕𐑐𐑧𐑕𐑦𐑓𐑦𐑒𐑱𐑖𐑩𐑯, " +"𐑕𐑰:\n\t·𐑣·𐑑·𐑑·𐑐://freedesktop.𐑹𐑜/𐑢𐑦𐑒𐑦/𐑕𐑐𐑧𐑕𐑩𐑓𐑩𐑒𐑱𐑖𐑩𐑯𐑟/𐑢𐑦𐑤𐑘𐑩𐑥-𐑕𐑐𐑧𐑒" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑤𐑦𐑕𐑑 𐑢𐑦𐑯𐑛𐑴𐑟 𐑹 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "𐑖𐑴 𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑤𐑦𐑕𐑑 𐑢𐑦𐑯𐑛𐑴𐑟 𐑹 𐑢𐑻𐑒𐑕𐑐𐑱𐑕𐑩𐑟" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "𐑖𐑴 𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑢𐑦𐑯𐑛𐑴" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "𐑖𐑴 𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑢𐑻𐑒𐑕𐑐𐑱𐑕" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑕𐑒𐑮𐑰𐑯" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "𐑖𐑴 𐑪𐑐𐑖𐑩𐑯𐑟 𐑑 𐑥𐑪𐑛𐑦𐑓𐑲 𐑐𐑮𐑪𐑐𐑼𐑑𐑦𐑟 𐑝 𐑩 𐑕𐑒𐑮𐑰𐑯" + +#, c-format +#: ../libwnck/wnckprop.c:1872 +msgid "Error while parsing arguments: %s\n" +msgstr "𐑻𐑼 𐑢𐑲𐑤 𐑐𐑸𐑕𐑦𐑙 𐑸𐑜𐑿𐑥𐑩𐑯𐑑𐑕: %s\n" + +#, c-format +#: ../libwnck/wnckprop.c:1895 +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑕𐑒𐑮𐑰𐑯 %d: 𐑞 𐑕𐑒𐑮𐑰𐑯 𐑛𐑳𐑟 𐑯𐑪𐑑 𐑧𐑒𐑟𐑦𐑕𐑑\n" + +#, c-format +#: ../libwnck/wnckprop.c:1951 +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d: 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑓𐑬𐑯𐑛\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#, c-format +#: ../libwnck/wnckprop.c:1975 +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 \"%s\": 𐑞 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑓𐑬𐑯𐑛\n" + +#, fuzzy, c-format +#: ../libwnck/wnckprop.c:1998 +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 \"%s\": 𐑞 𐑒𐑤𐑭𐑕 𐑜𐑮𐑵𐑐 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑓𐑬𐑯𐑛\n" + +#, fuzzy, c-format +#: ../libwnck/wnckprop.c:2021 +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "𐑒𐑨𐑯𐑪𐑑 𐑦𐑯𐑑𐑻𐑨𐑒𐑑 𐑢𐑦𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 %d: 𐑞 𐑢𐑻𐑒𐑕𐑐𐑱𐑕 𐑒𐑨𐑯𐑪𐑑 𐑚𐑰 𐑓𐑬𐑯𐑛\n" + diff --git a/po/en_CA.gmo b/po/en_CA.gmo new file mode 100644 index 0000000..c39b8fa Binary files /dev/null and b/po/en_CA.gmo differ diff --git a/po/en_CA.po b/po/en_CA.po new file mode 100644 index 0000000..f9de2c3 --- /dev/null +++ b/po/en_CA.po @@ -0,0 +1,154 @@ +# Canadian English translation of libwnck +# Copyright (C) 2004-2006 Adam Weinberger and the GNOME Foundation +# This file is distributed under the same licence as the libwnck package. +# Adam Weinberger , 2004, 2005, 2006. +# +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck 2.5.90\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2006-01-26 13:08-0500\n" +"PO-Revision-Date: 2005-02-01 20:52-0500\n" +"Last-Translator: Adam Weinberger \n" +"Language-Team: Canadian English \n" +"Language: en_CA\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../libwnck/application.c:26 +msgid "untitled application" +msgstr "untitled application" + +#: ../libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "Workspace Switcher" + +#: ../libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "Tool to switch between workspaces" + +#: ../libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Click this to switch to workspace %s" + +#: ../libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "Unknown Window" + +#: ../libwnck/selector.c:726 +msgid "No Windows Open" +msgstr "No Windows Open" + +#: ../libwnck/selector.c:830 +msgid "Window Selector" +msgstr "Window Selector" + +#: ../libwnck/selector.c:831 +msgid "Tool to switch between windows" +msgstr "Tool to switch between windows" + +#: ../libwnck/tasklist.c:664 +msgid "Window List" +msgstr "Window List" + +#: ../libwnck/tasklist.c:665 +msgid "Tool to switch between visible windows" +msgstr "Tool to switch between visible windows" + +#: ../libwnck/tasklist.c:2462 +msgid "_Close All" +msgstr "_Close All" + +#: ../libwnck/tasklist.c:2477 +msgid "_Minimize All" +msgstr "_Minimize All" + +#: ../libwnck/tasklist.c:2488 +msgid "_Unminimize All" +msgstr "_Unminimize All" + +#: ../libwnck/window-action-menu.c:257 +msgid "Unmi_nimize" +msgstr "Unmi_nimize" + +#: ../libwnck/window-action-menu.c:264 +msgid "Mi_nimize" +msgstr "Mi_nimize" + +#: ../libwnck/window-action-menu.c:272 +msgid "Unma_ximize" +msgstr "Unma_ximize" + +#: ../libwnck/window-action-menu.c:279 +msgid "Ma_ximize" +msgstr "Ma_ximize" + +#: ../libwnck/window-action-menu.c:299 +msgid "_Only on This Workspace" +msgstr "_Only on This Workspace" + +#: ../libwnck/window-action-menu.c:306 +msgid "_Always on Visible Workspace" +msgstr "_Always on Visible Workspace" + +#: ../libwnck/window-action-menu.c:460 ../libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "Workspace %d" + +#: ../libwnck/window-action-menu.c:468 +msgid "Workspace 1_0" +msgstr "Workspace 1_0" + +#: ../libwnck/window-action-menu.c:470 +#, c-format +msgid "Workspace %s%d" +msgstr "Workspace %s%d" + +#: ../libwnck/window-action-menu.c:560 +msgid "On _Top" +msgstr "On _Top" + +#: ../libwnck/window-action-menu.c:569 +msgid "_Move" +msgstr "_Move" + +#: ../libwnck/window-action-menu.c:576 +msgid "_Resize" +msgstr "_Resize" + +#: ../libwnck/window-action-menu.c:589 +msgid "_Close" +msgstr "_Close" + +#: ../libwnck/window-action-menu.c:617 +msgid "Move to Workspace _Left" +msgstr "Move to Workspace _Left" + +#: ../libwnck/window-action-menu.c:628 +msgid "Move to Workspace R_ight" +msgstr "Move to Workspace R_ight" + +#: ../libwnck/window-action-menu.c:639 +msgid "Move to Workspace _Up" +msgstr "Move to Workspace _Up" + +#: ../libwnck/window-action-menu.c:651 +msgid "Move to Workspace _Down" +msgstr "Move to Workspace _Down" + +#: ../libwnck/window-action-menu.c:665 +msgid "Move to Another _Workspace" +msgstr "Move to Another _Workspace" + +#: ../libwnck/window-action-menu.c:681 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../libwnck/window.c:32 +msgid "untitled window" +msgstr "untitled window" diff --git a/po/en_GB.gmo b/po/en_GB.gmo new file mode 100644 index 0000000..564134d Binary files /dev/null and b/po/en_GB.gmo differ diff --git a/po/en_GB.po b/po/en_GB.po new file mode 100644 index 0000000..c2c2ba5 --- /dev/null +++ b/po/en_GB.po @@ -0,0 +1,1277 @@ +# English (British) translation. +# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the libwnck package. +# Gareth Owen , 2004. +# Bruce Cowan , 2011. +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-09 13:09+0100\n" +"PO-Revision-Date: 2011-09-09 13:10+0100\n" +"Last-Translator: Bruce Cowan \n" +"Language-Team: British English \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1-beta1\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Untitled application" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Workspace Switcher" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Tool to switch between workspaces" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Click this to switch to workspace %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Click to start dragging \"%s\"" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Current workspace: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Click to switch to \"%s\"" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "No Windows Open" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Window Selector" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Tool to switch between windows" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Window List" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Tool to switch between visible windows" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "Mi_nimise All" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Un_minimise All" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Ma_ximise All" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_Unmaximise All" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "_Close All" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Unmi_nimise" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimise" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Unma_ximise" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximise" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Workspace %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Workspace 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Workspace %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Move" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Resize" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Always On _Top" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Always on Visible Workspace" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Only on This Workspace" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Move to Workspace _Left" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Move to Workspace R_ight" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Move to Workspace _Up" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Move to Workspace _Down" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Move to Another _Workspace" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Close" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Untitled window" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "X window ID of the window to examine or modify" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "X window ID of the group leader of an application to examine" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Class resource of the class group to examine" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMBER of the workspace to examine or modify" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMBER of the screen to examine or modify" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Alias of --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Change the number of workspaces of the screen to NUMBER" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Change the workspace layout of the screen to use NUMBER rows" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Change the workspace layout of the screen to use NUMBER columns" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Show the desktop" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Stop showing the desktop" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Move the viewport of the current workspace to X coordinate X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Move the viewport of the current workspace to Y coordinate Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Minimise the window" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Unminimise the window" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maximise the window" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Unmaximise the window" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maximise the window horizontally" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Unmaximise the window horizontally" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maximise the window vertically" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Unmaximise the window vertically" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Start moving the window via the keyboard" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Start resizing the window via the keyboard" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Activate the window" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Close the window" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Make the window fullscreen" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Make the window quit fullscreen mode" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Make the window always on top" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Make the window not always on top" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Make the window below other windows" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Make the window not below other windows" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Shade the window" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Unshade the window" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Make the window have a fixed position in the viewport" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Make the window not have a fixed position in the viewport" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Make the window not appear in pagers" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Make the window appear in pagers" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Make the window not appear in tasklists" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Make the window appear in tasklists" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Make the window visible on all workspaces" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Make the window visible on the current workspace only" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Move the window to workspace NUMBER (first workspace is 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Change the X coordinate of the window to X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Change the Y coordinate of the window to Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Change the width of the window to WIDTH" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Change the height of the window to HEIGHT" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Change the name of the workspace to NAME" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Activate the workspace" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Invalid value \"%s\" for --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Conflicting options are present: --%s and --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Invalid argument \"%d\" for --%s: the argument must be positive\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Conflicting options are present: --%s or --%s, and --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Invalid argument \"%s\" for --%s, valid values are: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Viewport cannot be moved: there is no current workspace\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Action not allowed\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Window cannot be moved to workspace %d: the workspace does not exist\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Screen Number: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometry (width, height): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Number of Workspaces: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Window Manager: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Active Workspace: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Active Window: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Showing the desktop: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Workspace Name: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Workspace Number: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "On Screen: %d (Window Manager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Viewport position (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Position in Layout (row, column): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Left Neighbour: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Right Neighbour: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Top Neighbour: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Bottom Neighbour: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Class Group ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Class Group Name: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "set" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Icons: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Number of Windows: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Name: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Icon Name: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Startup ID: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "all workspaces" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "On Workspace: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "normal window" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "desktop" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "dock or panel" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "dialogue window" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "tearoff toolbar" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "tearoff menu" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "utility window" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "splash screen" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Window Type: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometry (x, y, width, height): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Class Instance: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Session ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Group Leader: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transient for: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "minimised" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maximised" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "maximised horizontally" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "maximised vertically" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "shaded" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "pinned" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "sticky" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "above" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "below" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "fullscreen" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "needs attention" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "skip pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "skip tasklist" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "State: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "move" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "resize" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "shade" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "unshade" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "stick" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maximise horizontally" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "unmaximise horizontally" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maximise vertically" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "unmaximise vertically" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "change workspace" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "pin" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "unpin" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "minimise" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "unminimise" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "maximise" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "unmaximise" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "change fullscreen mode" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "close" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "make above" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "unmake above" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "make below" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "unmake below" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "no action possible" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Possible Actions: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Options to list windows or workspaces" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Show options to list windows or workspaces" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Options to modify properties of a window" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Show options to modify properties of a window" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Options to modify properties of a workspace" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Show options to modify properties of a workspace" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Options to modify properties of a screen" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Show options to modify properties of a screen" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Error while parsing arguments: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Cannot interact with screen %d: the screen does not exist\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Cannot interact with workspace %d: the workspace cannot be found\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Cannot interact with window with XID %lu: the window cannot be found\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Use N_ROWS rows" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Only show current workspace" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Use RTL as default direction" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Show workspace names instead of workspace contents" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Use a vertical orientation" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Don't show window in tasklist" + +#~ msgid "Always group windows" +#~ msgstr "Always group windows" + +#~ msgid "Never group windows" +#~ msgstr "Never group windows" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Display windows from all workspaces" + +#~ msgid "Enable Transparency" +#~ msgstr "Enable Transparency" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Resource Class: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Group Name: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "workspace|none" + +#~ msgid "window|none" +#~ msgstr "window|none" + +#~ msgid "startupID|none" +#~ msgstr "startupID|none" + +#~ msgid "Unknown Window" +#~ msgstr "Unknown Window" + +#~ msgid "_Unroll" +#~ msgstr "_Unroll" + +#~ msgid "Roll _Up" +#~ msgstr "Roll _Up" diff --git a/po/eo.gmo b/po/eo.gmo new file mode 100644 index 0000000..fc46aa1 Binary files /dev/null and b/po/eo.gmo differ diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..dee5a81 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,1193 @@ +# Esperanto translation for libwnck. +# Copyright (C) 2003-2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# Joël BRICH , 2003. +# Guillaume SAVATON , 2006. +# Olivier WEB < >, 2008. +# Kristjan SCHMIDT , 2011, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-09-01 20:39+0000\n" +"PO-Revision-Date: 2012-03-10 08:08+0100\n" +"Last-Translator: Kristjan SCHMIDT \n" +"Language-Team: Esperanto \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"X-Launchpad-Export-Date: 2011-03-30 16:12+0000\n" +"X-Generator: Launchpad (build 12684)\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Sentitola aplikaĵo" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Laborkadra ŝaltilo" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Ilo por ŝalti inter laborspacoj" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Allaku tion por ŝalti al laborspaco %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Aktuala laborspaco: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klaku por ŝalti al \"%s\"" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Neniu fenestro estas malfermita" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Fenestroelektilo" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Ilo por ŝalti inter fenestroj" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Fenestrolisto" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Ilo por ŝalti inter videblaj fenestroj" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "Mi_nimumigi ĉiujn" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Ne_minimumigi ĉiujn" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Ma_ksimumigi ĉiujn" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_Nemaksimumigi ĉiujn" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "_Fermi ĉiujn" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Nemi_nimumigi" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimumigi" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Nema_ksimumigi" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ksimumigi" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Laborspaco %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Laborspaco 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Laborspaco %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Movi" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Aligrandigi" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Ĉiam _antaŭe" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Ĉi_am en videbla laborspaco" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Nur en ĉi tiu laborspaco" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Movi al la _maldekstra laborspaco" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Movi al la _dekstra laborspaco" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Movi al la su_pra laborspaco" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Movi al la su_ba laborspaco" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Movi al alia _laborspaco" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Fermi" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Sentitola fenestro" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "KLASO" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NOMBRO" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Montri la labortablon" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Ĉesi montron de la labortablon" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Minimumigi la fenestron" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Neminimumigi la fenestron" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maksimumigi la fenestron" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Nemaksimumigi la fenestron" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maksimumigi horizontale la fenestron" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Nemaksimumigi horizontale la fenestron" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maksimumigi vertikale la fenestron" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Nemaksimumigi vertikale la fenestron" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Movi fenestron per la klavaro" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Ŝangi grandon de la fenestro per la klavaro" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Aktivigi fenestron" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Fermi la fenestron" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Tutekranigi la fenestron" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Ĉesi tutekranan reĝimon de la fenstro" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Fari la fenestron ĉiam antaŭe" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Ne fari la fenestron ĉiam antaŭe" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Fari la fenestron malantaŭ aliaj fenestroj" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Ne fari la fenestron malantaŭ aliaj fenestroj" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "LARĜO" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Ŝanĝi la alton de la fenestro al ALTO" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "ALTO" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TIPO" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Ŝanĝi la nomon de la laborspaco al NOMO" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NOMO" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Aktivigi laborspacon" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Nevalida valoro \"%s\" por --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Ago ne estas permesite\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ekrannumero: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometrio (larĝo, alto): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Nombro da laborspacoj: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Fenestroadministrilo: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "nenio" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktiva laborspaco: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "neniu" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktiva fenestro: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Montro de la labortablo: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "vere" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nomo de la laborspaco: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Numero de la laborspaco: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Sur ekrano: %d (fenestroadministrilo: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Maldekstra najbaro: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Dekstra najbaro: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Supra najbaro: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Suba najbaro: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +#| msgid "Group Name: %s\n" +msgid "Class Group ID: %s\n" +msgstr "Klasgrupnomo: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +#| msgid "Group Name: %s\n" +msgid "Class Group Name: %s\n" +msgstr "Klasgrupnomo: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "agordite" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Piktogramoj: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Nombra da fenestroj: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Nomo: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Piktogramnomo: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "neniu" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "ĉiuj laborspacoj" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Sur laborspaco: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "normala fenestro" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "labortablo" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "ilarfenestro" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "salutŝildo" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Fenestrotipo: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometrio (x, y, larĝo, alto): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Seanco-ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Grupestro: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "minimumigite" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maksimumigite" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "horizontale maksimumigite" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "vertikale maksimumigite" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "antaŭe" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "malantaŭe" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "plenekrane" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "bezonas atenton" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normale" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Stato: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "movi" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "aligrandigi" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "ombrigi" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "neombrigi" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maksimumigi horizontale" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "nemaksimumigi horizontale" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maksimumigi vertikale" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "nemaksimumigi vertikale" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "ŝangi laborspacon" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "minimumigi" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "neminimumigi" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "maksimumigi" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "nemaksimumigi" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "ŝanĝi tutekranan reĝimon" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "fermi" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "fari antaŭen" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "nefari antaŭen" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "fari malantaŭen" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "nefari malantaŭen" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "neniu ago eblas" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Eblaj agoj: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" diff --git a/po/es.gmo b/po/es.gmo new file mode 100644 index 0000000..b508154 Binary files /dev/null and b/po/es.gmo differ diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..2bf1961 --- /dev/null +++ b/po/es.po @@ -0,0 +1,1302 @@ +# translation of libwnck.HEAD.es.po to Spanish +# Spanish translation of libwnck. +# Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc +# This file is distributed under the same license as the libwnck package. +# +# Germán Poo Caamaño , 2002. +# Francisco Javier F. Serrador , 2005, 2006. +# Lucas Vieites , 2005. +# Jorge González , 200, 2009, 2011. +# Daniel Mustieles , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD.es\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-02-11 14:09+0100\n" +"Last-Translator: Daniel Mustieles \n" +"Language-Team: Español \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplicación sin título" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Selector de áreas de trabajo" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Herramienta para cambiar entre áreas de trabajo" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Pulse aquí para cambiar al área de trabajo %s" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Pulse para comenzar a arrastrar «%s»" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Área de trabajo actual: «%s»" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Pulse para cambiar al «%s»" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "No hay ventanas abiertas" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Selector de ventanas" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Herramienta para cambiar entre ventanas" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Lista de ventanas" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Herramienta para cambiar entre ventanas visibles" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "Mi_nimizar todo" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "Res_taurar todo" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "Ma_ximizar todo" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "Res_taurar todo" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "Cerrar _todo" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Desmi_nimizar" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimizar" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Desma_ximizar" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximizar" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Área de trabajo %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Área de trabajo 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Área de trabajo %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Mover" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Redimensionar" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Siempre _encima" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Siempre en el área de trabajo _visible" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Sólo en esta área de trabajo" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Mover al área de trabajo de la _izquierda" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Mover al área de trabajo de la _derecha" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Mover al área de trabajo de _arriba" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Mover al área de trabajo de a_bajo" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Mover a _otra área de trabajo" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Cerrar" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Ventana sin título" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X window de la ventana a examinar o modificar" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "" +"ID X window del líder del grupo de ventanas de una aplicación a examinar" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Recurso del grupo de clase a examinar" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASE" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÚMERO del área de trabajo a examinar o modificar" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NÚMERO" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÚMERO de la pantalla a examinar o modificar" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alias de --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Listar las ventanas de la aplicación/grupo de clase/área de trabajo/pantalla " +"(formato de salida: «XID: nombre de la ventana»)" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Listar las áreas de trabajo de la pantalla (formato de salida: «Número: " +"nombre del área de trabajo»)" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Cambiar el número de áreas de trabajo de la pantalla a NÚMERO" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Cambiar la disposición del área de trabajo de la pantalla para que use " +"NÚMERO filas" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Cambiar la disposición del área de trabajo de la pantalla para que use " +"NÚMERO columnas" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Mostrar el escritorio" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Dejar de mostrar el escritorio" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Mover el puerto de vista del área de trabajo actual a X coordenada X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Mover el puerto de vista del área de trabajo actual a Y coordenada Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimizar la ventana" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Desminimizar la ventana" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maximizar la ventana" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Desmaximizar la ventana" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maximizar horizontalmente la ventana" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Desmaximizar horizontalmente la ventana" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maximizar verticalmente la ventana" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Desmaximizar verticalmente la ventana" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Comenzar a mover la ventana usando el teclado" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Comenzar a redimensionar la ventana usando el teclado" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Activar la ventana" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Cerrar la ventana" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Mostrar la ventana a pantalla completa" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Hacer que la ventana salga del modo a pantalla completa" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Hacer que la ventana esté siempre encima" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Hacer que la ventana no siempre esté encima" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Poner la ventana debajo de otras ventanas" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "No poner la ventana debajo de otras ventanas" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Enrollar la ventana" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Desenrollar la ventana" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fijar la posición de la ventana en el puerto de vista" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "No fijar la posición de la ventana en el puerto de vista" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "No mostrar la ventana en los paginadores" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Mostrar la ventana en los paginadores" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "No mostrar la ventana en la lista de tareas" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Mostrar la ventana en la lista de tareas" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Mostrar las ventanas de todas las áreas de trabajo" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Mostrar la ventana sólo en el área de trabajo actual" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Mover la ventana al área de trabajo NÚMERO (el primer área de trabajo es el " +"0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Cambiar la coordenada X de la ventana a X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Cambiar la coordenada Y de la ventana a Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Cambiar la anchura de la ventana a la ANCHURA" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "ANCHURA" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Cambiar la altura de la ventana a la ALTURA" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ALTURA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Cambiar el tipo de la ventana al TIPO (los valores válidos son: normal, " +"desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TIPO" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Cambiar el nombre del área de trabajo a NOMBRE" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NOMBRE" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Activar el área de trabajo" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valor «%s» no válido para --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería interactuar con la pantalla %d " +"pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería listar las ventanas o áreas de " +"trabajo de la pantalla %d pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería interactuar con el área de trabajo " +"%d pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se deberían listar las ventanas del área de " +"trabajo %d pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería interactuar con una aplicación " +"pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se deberían listar las ventanas de una " +"aplicación pero se ha usado --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería interactuar con el grupo de clase «%" +"s» pero se ha usado --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Existen opciones en conflicto: se deberían listar las ventanas del grupo de " +"clase «%s» pero se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Existen opciones en conflicto: se debería interactuar con una ventana pero " +"se ha usado --%s\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Existen opciones en conflicto: --%s y --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Argumento «%d» no válido para --%s: el argumento debe ser estrictamente " +"positivo\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Argumento «%d» no válido para --%s: los argumentos deben ser positivos\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Existen opciones en conflicto: --%s o --%s, y --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argumento «%s» no válido para --%s, los argumentos válidos son: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"No se puede cambiar la disposición del área de trabajo en la pantalla: la " +"disposición ya tiene un propietario\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"No se puede mover el puerto de visión: el área de trabajo actual no tiene un " +"puerto de visión\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "No se puede mover el puerto de visión: no hay área de trabajo actual\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Acción no permitida\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"La ventana no se puede mover al área de trabajo %d: el área de trabajo no " +"existe\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Pantalla número: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometría (anchura, altura): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Número de áreas de trabajo: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Disposición del área de trabajo (filas, columnas, orientación): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Gestor de ventanas: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d («%s»)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "ninguno" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Área de trabajo activo: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "«%s»" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "ninguna" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Ventana activa: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Mostrando el escritorio: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nombre del área de trabajo: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Área de trabajo número: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "En la pantalla: %d (Gestor de ventanas: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posición del puerto de vista (x,y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posición en la distribución (fila, columna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Vecino izquierdo: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Vecino derecho: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Vecino superior: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Vecino inferior: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID del grupo de clase: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nombre del grupo de clase: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "establecer" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Iconos: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Número de ventanas: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Nombre: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nombre del icono: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "ninguno" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID de inicio: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "todas las áreas de trabajo" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "En el área de trabajo %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "ventana normal" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "escritorio" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "empotrable o panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "ventana de diálogo" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "tirador de la barra de herramientas" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "tirador del menú" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "ventana de utilidades" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "pantalla de bienvenida" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tipo de ventana: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometría (x, y, anchura, altura): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instancia de la clase: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID de sesión: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "Rol: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Líder del grupo: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transitorio para: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimizada" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maximizada" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "maximizada horizontalmente" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "maximizada verticalmente" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "enrollada" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "pinchada" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "pegajosa" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "encima" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "debajo" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "pantalla completa" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "necesita atención" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "saltar paginador" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "saltar lista de tareas" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Estado: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "mover" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "redimensionar" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "enrollar" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "desenrollar" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "pegar" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "despegar" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maximizar horizontalmente" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "desmaximizar horizontalmente" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maximizar verticalmente" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "desmaximizar verticalmente" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "cambiar área de trabajo" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "pinchar" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "despinchar" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimizar" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "desminimizar" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maximizar" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "desmaximizar" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "cambiar modo a pantalla completa" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "cerrar" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "poner encima" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "no poner encima" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "poner debajo" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "no poner debajo" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "no hay acciones posibles" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Acciones posibles: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Imprimir o modificar las propiedades de una pantalla/área de trabajo/ventana " +"o interactuar con una ellas, siguiendo la especificación EWMH.\n" +"Para obtener más información acerca de esta especificación vea:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Opciones para listar las ventanas o las áreas de trabajo" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Mostrar las opciones para listar las ventanas o las áreas de trabajo" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Opciones para modificar las propiedades de una ventana" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Mostrar las opciones para modificar las propiedades de una ventana" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Opciones para modificar las propiedades de un área de trabajo" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "" +"Mostrar las opciones para modificar las propiedades de un área de trabajo" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Opciones para modificar las propiedades de una pantalla" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Mostrar las opciones para modificar las propiedades de una pantalla" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Error al analizar los argumentos: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "No se puede interactuar con la pantalla %d: la pantalla no existe\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"No se puede interactuar con el área de trabajo %d: no se puede encontrar el " +"área de trabajo\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"No se puede interactuar con el grupo de clase «%s»: no se puede encontrar el " +"grupo de clase\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"No se puede interactuar con la aplicación cuyo líder de grupo tiene el XID %" +"lu: no se puede encontrar la aplicación\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"No se puede interactuar con la ventana de XID %lu: no se puede encontrar la " +"ventana\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Usar columnas N_COLUMNAS" + +#~ msgid "N_ROWS" +#~ msgstr "N_COLUMNAS" + +#~ msgid "Only show current workspace" +#~ msgstr "Sólo mostrar esta área de trabajo" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Usar la dirección D-->I como predeterminada" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Mostrar los nombres de las áreas de trabajo en lugar del contenido" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Usar orientación vertical" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "No mostrar una ventana en la lista de tareas" + +#~ msgid "Always group windows" +#~ msgstr "Siempre agrupar ventanas" + +#~ msgid "Never group windows" +#~ msgstr "No agrupar ventanas nunca" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Mostrar las ventanas de todas las áreas de trabajo" + +#~ msgid "Enable Transparency" +#~ msgstr "Activar transparencias" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Clase del recurso: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Nombre del grupo: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "ninguno" + +#~ msgid "window|none" +#~ msgstr "ninguna" + +#~ msgid "startupID|none" +#~ msgstr "ninguno" diff --git a/po/et.gmo b/po/et.gmo new file mode 100644 index 0000000..72cff98 Binary files /dev/null and b/po/et.gmo differ diff --git a/po/et.po b/po/et.po new file mode 100644 index 0000000..d126bba --- /dev/null +++ b/po/et.po @@ -0,0 +1,980 @@ +# libwnck eesti keele tõlge. +# Estonian translation of libwnck. +# +# Copyright (C) 2002, 2003, 2005-2007 The Free Software Foundation +# Copyright (C) 2009, 2010 The GNOME Project. +# This file is distributed under the same license as the libwnck package. +# +# Ilmar Kerm , 2002. +# Tõivo Leedjärv , 2002, 2003. +# Priit Laes , 2005, 2006. +# Ivar Smolin , 2005–2007, 2009, 2010. +# Mattias Põldaru , 2008, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck MASTER\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-02-22 14:11+0000\n" +"PO-Revision-Date: 2012-03-01 12:55+0200\n" +"Last-Translator: Mattias Põldaru \n" +"Language-Team: Estonian <>\n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +msgid "Untitled application" +msgstr "Pealkirjata rakendus" + +msgid "Workspace Switcher" +msgstr "Tööalade vahetaja" + +msgid "Tool to switch between workspaces" +msgstr "Vahend tööalade vahel lülitumiseks" + +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klõpsa siin, et liikuda tööalale %s" + +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klõpsa akna \"%s\" lohistamiseks" + +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Praegune tööala: \"%s\"" + +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Tööalale \"%s\" lülitumiseks klõpsa siin" + +msgid "No Windows Open" +msgstr "Aknaid pole lahti" + +msgid "Window Selector" +msgstr "Aknavalija" + +msgid "Tool to switch between windows" +msgstr "Vahend akende vahel lülitumiseks" + +msgid "Window List" +msgstr "Akende nimekiri" + +msgid "Tool to switch between visible windows" +msgstr "Vahend nähtavate akende vahetamiseks" + +msgid "Mi_nimize All" +msgstr "_Minimeeri kõik" + +msgid "Un_minimize All" +msgstr "_Taasta kõik" + +msgid "Ma_ximize All" +msgstr "Ma_ksimeeri" + +msgid "_Unmaximize All" +msgstr "_Taasta kõik" + +msgid "_Close All" +msgstr "_Sulge kõik" + +msgid "Unmi_nimize" +msgstr "_Taasta" + +msgid "Mi_nimize" +msgstr "_Minimeeri" + +msgid "Unma_ximize" +msgstr "Taasta s_uurus" + +msgid "Ma_ximize" +msgstr "Ma_ksimeeri" + +#, c-format +msgid "Workspace %d" +msgstr "Tööala %d" + +#, c-format +msgid "Workspace 1_0" +msgstr "Tööala 1_0" + +#, c-format +msgid "Workspace %s%d" +msgstr "Tööala %s%d" + +msgid "_Move" +msgstr "_Liiguta" + +msgid "_Resize" +msgstr "Muuda suu_rust" + +msgid "Always On _Top" +msgstr "Alati kõige p_ealmine" + +msgid "_Always on Visible Workspace" +msgstr "Alati nä_htaval tööalal" + +msgid "_Only on This Workspace" +msgstr "_Ainult sellel tööalal" + +msgid "Move to Workspace _Left" +msgstr "Tõsta _vasakpoolsele tööalale" + +msgid "Move to Workspace R_ight" +msgstr "Tõsta _parempoolsele tööalale" + +msgid "Move to Workspace _Up" +msgstr "Tõsta _ülemisele tööalale" + +msgid "Move to Workspace _Down" +msgstr "Tõsta _alumisele tööalale" + +msgid "Move to Another _Workspace" +msgstr "Tõsta mõ_nele teisele tööalale" + +msgid "_Close" +msgstr "_Sulge" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +msgid "Untitled window" +msgstr "Pealkirjata aken" + +msgid "X window ID of the window to examine or modify" +msgstr "Uuritava või muudetava X'i akna ID" + +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +msgid "X window ID of the group leader of an application to examine" +msgstr "Uuritava rakenduse grupi juhtakna X'i akna ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +msgid "Class resource of the class group to examine" +msgstr "Uuritava klasside grupi klassiressursi määramine" + +msgid "CLASS" +msgstr "KLASS" + +msgid "NUMBER of the workspace to examine or modify" +msgstr "Uuritava või muudetava tööala NUMBER" + +msgid "NUMBER" +msgstr "NUMBER" + +msgid "NUMBER of the screen to examine or modify" +msgstr "Uuritava või muudetava ekraani NUMBER" + +msgid "Alias of --window" +msgstr "Võtme --window alias" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Rakenduse, klassi grupi, tööala või ekraani akende nimekirja väljastamine " +"(väljundvorming: \"XID: Akna nimi\")" + +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "Ekraani tööalade nimekiri (väljundvorming: \"Number: tööala nimi\")" + +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Ekraani tööalade arvu muutmine" + +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Ekraani tööalade paigutuse ridade muutmine" + +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Ekraani tööalade paigutuse veergude muutmine" + +msgid "Show the desktop" +msgstr "Töölaua näitamine" + +msgid "Stop showing the desktop" +msgstr "Töölaua näitamise lõpetamine" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Selle tööala vaateava tõstmine määratud X-koordinaadile" + +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Selle tööala vaateava tõstmine määratud Y-koordinaadile" + +msgid "Y" +msgstr "Y" + +msgid "Minimize the window" +msgstr "Akna minimeerimine" + +msgid "Unminimize the window" +msgstr "Akna taastamine" + +msgid "Maximize the window" +msgstr "Akna maksimeerimine" + +msgid "Unmaximize the window" +msgstr "Akna suuruse taastamine" + +msgid "Maximize horizontally the window" +msgstr "Akna rõhtne maksimeerimine" + +msgid "Unmaximize horizontally the window" +msgstr "Akna laiuse taastamine" + +msgid "Maximize vertically the window" +msgstr "Akna püstine maksimeerimine" + +msgid "Unmaximize vertically the window" +msgstr "Akna kõrguse taastamine" + +msgid "Start moving the window via the keyboard" +msgstr "Akna liigutamise alustamine klaviatuurilt" + +msgid "Start resizing the window via the keyboard" +msgstr "Akna suuruse muutmise alustamine klaviatuurilt" + +msgid "Activate the window" +msgstr "Akna aktiveerimine" + +msgid "Close the window" +msgstr "Akna sulgemine" + +msgid "Make the window fullscreen" +msgstr "Akna laotamine üle ekraani" + +msgid "Make the window quit fullscreen mode" +msgstr "Üle ekraani laotatud akna taastamine" + +msgid "Make the window always on top" +msgstr "Akna määramine alati kõige pealmiseks" + +msgid "Make the window not always on top" +msgstr "Kõige pealmiseks määratud akna taastamine" + +msgid "Make the window below other windows" +msgstr "Akna määramine alati kõige alumiseks" + +msgid "Make the window not below other windows" +msgstr "Kõige alumiseks määratud akna taastamine" + +msgid "Shade the window" +msgstr "Akna kokkukerimine" + +msgid "Unshade the window" +msgstr "Akna lahtikerimine" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Make the window have a fixed position in the viewport" +msgstr "Aknale vaateavas püsiva asukoha määramine" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Make the window not have a fixed position in the viewport" +msgstr "Vaateavas püsiva asukohaga aknalt asukoha püsivuse eemaldamine" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +msgid "Make the window not appear in pagers" +msgstr "Määra, et aken pole töölalahalduris näha" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +msgid "Make the window appear in pagers" +msgstr "Akna nähtavakstegemine tööalahaldurites" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +msgid "Make the window not appear in tasklists" +msgstr "Akna eemaldamine akende nimekirjast" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +msgid "Make the window appear in tasklists" +msgstr "Akna kaasamine akende nimekirja" + +msgid "Make the window visible on all workspaces" +msgstr "Akna nähtavakstegemine kõigil tööaladel" + +msgid "Make the window visible on the current workspace only" +msgstr "Akna nähtavakstegemine ainult praegusel tööalal" + +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Akna tõstmine määratud tööalale (esimene tööala = 0)" + +msgid "Change the X coordinate of the window to X" +msgstr "Akna X-koordinaadi määramine" + +msgid "Change the Y coordinate of the window to Y" +msgstr "Akna Y-koordinaadi määramine" + +msgid "Change the width of the window to WIDTH" +msgstr "Akna laiuse määramine" + +msgid "WIDTH" +msgstr "LAIUS" + +msgid "Change the height of the window to HEIGHT" +msgstr "Akna kõrguse määramine" + +msgid "HEIGHT" +msgstr "KÕRGUS" + +#. Translators: do not translate "normal, desktop, dock..." +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Akna liigi muutmine (võimalikud väärtused: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +msgid "TYPE" +msgstr "LIIK" + +msgid "Change the name of the workspace to NAME" +msgstr "Töölaua nime muutmine" + +msgid "NAME" +msgstr "NIMI" + +msgid "Activate the workspace" +msgstr "Tööala aktiveerimine" + +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Vigane väärtus \"%s\" võtmele --%s" + +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on suhtlus ekraaniga %d, kuid samas " +"kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on ekraani %d akende või tööalade nimekirja " +"näitamine, kuid samas kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on suhtlus tööalaga %d, kuid samas " +"kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on tööala %d akende nimekirja näitamine, " +"kuid samas kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on suhtlemine rakendusega, kuid samas " +"kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on rakenduse akende nimekirja näitamine, " +"kuid samas kasutatakse võtit --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on suhtlemine klassigrupiga \"%s\", kuid " +"samas kasutatakse kuid samas kasutatakse võtit --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Vastuolulised valikud: peaks kuvama klassi grupi \"%s\" akende nimekirja, " +"kuid samas kasutatakse võtit --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Vastuolulised valikud: määratud on suhtlemine aknaga, kuid samas kasutatakse " +"võtit --%s\n" + +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Vastuolulised valikud: --%s ja --%s\n" + +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Vigane argument \"%d\" võtmele --%s: argumendi väärtus peab olema rangelt " +"positiivne\n" + +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Vigane argument \"%d\" võtmele --%s: argumendi väärtus peab olema " +"positiivne\n" + +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Vastuolulised valikud: --%s või --%s, ja --%s\n" + +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Vigane argument \"%s\" võtmele --%s. Võimalikud väärtused on: %s\n" + +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Tööala paigutust ekraanil pole võimalik muuta: paigutus on juba millegi " +"poolt kasutuses\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Vaateava pole võimalik liigutada: aktiivne tööala ei sisalda vaateava\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Vaateava pole võimalik liigutada: aktiivset tööala pole\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#, c-format +msgid "Action not allowed\n" +msgstr "Tegevus pole lubatud\n" + +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Akent pole võimalik tööalale tõsta %d: tööala pole olemas\n" + +#. Translators: 'unset' in the sense of "something has not been set". +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ekraani number: %d\n" + +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geomeetria (laius, kõrgus): %d, %d\n" + +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Tööalade arv: %d\n" + +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Tööala kujundus (read, veerud, suund); %d, %d, %s\n" + +msgid "" +msgstr "" + +#, c-format +msgid "Window Manager: %s\n" +msgstr "Aknahaldur: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +msgctxt "workspace" +msgid "none" +msgstr "puudub" + +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktiivne tööala: %s\n" + +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +msgctxt "window" +msgid "none" +msgstr "puudub" + +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktiivne aken: %s\n" + +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Näidatakse töölauda: %s\n" + +msgid "true" +msgstr "tõene" + +msgid "false" +msgstr "väär" + +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Tööala nimi: %s\n" + +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Tööala number: %d\n" + +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Ekraanil: %d (aknahaldur: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Vaateava asukoht (x, y): %s\n" + +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Vaateava asukoht (rida, veerg): %d, %d\n" + +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Vasakpoolne naaber: %s\n" + +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Parempoolne naaber: %s\n" + +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Ülemine naaber: %s\n" + +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Alumine naaber: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Klassi grupi ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Klassi grupi nimi: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +msgid "set" +msgstr "määratud" + +#. Translators: 'unset' in the sense of "something has not been set". +msgid "" +msgstr "" + +#, c-format +msgid "Icons: %s\n" +msgstr "Ikoonid: %s\n" + +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Akende arv: %d\n" + +#, c-format +msgid "Name: %s\n" +msgstr "Nimi: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ikooni nimi: %s\n" + +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +msgctxt "startupID" +msgid "none" +msgstr "puudub" + +#, c-format +msgid "Startup ID: %s\n" +msgstr "Käivutus-ID: %s\n" + +msgid "all workspaces" +msgstr "kõik tööalad" + +#, c-format +msgid "On Workspace: %s\n" +msgstr "Tööalal: %s\n" + +msgid "normal window" +msgstr "tavaline aken" + +msgid "desktop" +msgstr "töölaud" + +msgid "dock or panel" +msgstr "dokk või paneel" + +msgid "dialog window" +msgstr "dialoogiaken" + +msgid "tearoff toolbar" +msgstr "küljestrebitav tööriistariba" + +msgid "tearoff menu" +msgstr "küljestrebitav menüü" + +msgid "utility window" +msgstr "utiliidi aken" + +msgid "splash screen" +msgstr "käivitusekraan" + +#, c-format +msgid "Window Type: %s\n" +msgstr "Akna liik: %s\n" + +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geomeetria (x, y, laius, kõrgus): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#, c-format +msgid "Class Instance: %s\n" +msgstr "Klassi isend: %s\n" + +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#, c-format +msgid "Session ID: %s\n" +msgstr "Seansi ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Grupi juhtaken: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#, c-format +msgid "Transient for: %lu\n" +msgstr "On seondatud: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +msgid ", " +msgstr ", " + +msgid "minimized" +msgstr "minimeeritud" + +msgid "maximized" +msgstr "maksimeeritud" + +msgid "maximized horizontally" +msgstr "rõhtsalt maksimeeritud" + +msgid "maximized vertically" +msgstr "püstiselt maksimeeritud" + +msgid "shaded" +msgstr "kokku keritud" + +msgid "pinned" +msgstr "naelutatud" + +msgid "sticky" +msgstr "kleepuv" + +msgid "above" +msgstr "kõige pealmine" + +msgid "below" +msgstr "kõige alumine" + +msgid "fullscreen" +msgstr "täisekraan" + +msgid "needs attention" +msgstr "vajab tähelepanu" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +msgid "skip pager" +msgstr "pole tööala halduris" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +msgid "skip tasklist" +msgstr "pole akende nimekirjas" + +msgid "normal" +msgstr "tavaline" + +#, c-format +msgid "State: %s\n" +msgstr "Olek: %s\n" + +msgid "move" +msgstr "liiguta" + +msgid "resize" +msgstr "muuda suurust" + +msgid "shade" +msgstr "keri kokku" + +msgid "unshade" +msgstr "keri lahti" + +msgid "stick" +msgstr "kleepuv" + +msgid "unstick" +msgstr "pole kleepuv" + +msgid "maximize horizontally" +msgstr "maks. laius" + +msgid "unmaximize horizontally" +msgstr "taasta laius" + +msgid "maximize vertically" +msgstr "maks. kõrgus" + +msgid "unmaximize vertically" +msgstr "taasta kõrgus" + +msgid "change workspace" +msgstr "vaheta tööala" + +msgid "pin" +msgstr "naeluta" + +msgid "unpin" +msgstr "vabasta rõhtnaelast" + +msgid "minimize" +msgstr "minimeeri" + +msgid "unminimize" +msgstr "taasta" + +msgid "maximize" +msgstr "maksimeeri" + +msgid "unmaximize" +msgstr "taasta suurus" + +msgid "change fullscreen mode" +msgstr "täisekraanirežiimi muutmine" + +msgid "close" +msgstr "sulge" + +msgid "make above" +msgstr "kõige pealmine" + +msgid "unmake above" +msgstr "pole kõige pealmine" + +msgid "make below" +msgstr "kõige alumine" + +msgid "unmake below" +msgstr "pole kõige aluimine" + +msgid "no action possible" +msgstr "ükski tegevus pole võimalik" + +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Võimalikud tegevused: %s\n" + +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Ekraani, akna või tööala omaduste väljastamine või muutmine või nendega " +"suhtlemine vastavalt EWMH spetsifikatsioonile.\n" +"Nimetatud spetsifikatsiooni kohta saab teavet aadressilt:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +msgid "Options to list windows or workspaces" +msgstr "Akende või tööalade nimekirja valikud" + +msgid "Show options to list windows or workspaces" +msgstr "Akende või tööalade nimekirja valikute näitamine" + +msgid "Options to modify properties of a window" +msgstr "Akna omaduste muutmise valikud" + +msgid "Show options to modify properties of a window" +msgstr "Akna omaduste muutmise valikute näitamine" + +msgid "Options to modify properties of a workspace" +msgstr "Tööala omaduste muutmise valikud" + +msgid "Show options to modify properties of a workspace" +msgstr "Tööala omaduste muutmise valikute näitamine" + +msgid "Options to modify properties of a screen" +msgstr "Ekraani omaduste muutmise valikud" + +msgid "Show options to modify properties of a screen" +msgstr "Ekraani omaduste muutmise valikute näitamine" + +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Viga argumentide töötlemisel: %s\n" + +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Ekraaniga %d pole võimalik suhelda: ekraani pole olemas\n" + +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Tööalaga %d pole võimalik suhelda: tööala ei leitud\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Klassi/grupiga \"%s\" pole võimalik suhelda: klassi/gruppi ei leitud\n" + +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Rakendusega, milla juhtakna XID on %lu, pole võimalik suhelda: rakendust ei " +"leitud\n" + +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Aknaga, mille XID on %lu, pole võimalik suhelda: akent ei leitud\n" diff --git a/po/eu.gmo b/po/eu.gmo new file mode 100644 index 0000000..c3742be Binary files /dev/null and b/po/eu.gmo differ diff --git a/po/eu.po b/po/eu.po new file mode 100644 index 0000000..e70724c --- /dev/null +++ b/po/eu.po @@ -0,0 +1,1271 @@ +# Basque translation for libwnck +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Hizkuntza Politikarako Sailburuordetza , 2004. +# Iñaki Larrañaga Murgoitio , 2004, 2006, 2008, 2009, 2010. +# Iñaki Larrañaga Murgoitio , 2007, 2011. +msgid "" +msgstr "" +"Project-Id-Version: libwnck master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-25 13:23+0200\n" +"PO-Revision-Date: 2011-09-25 13:22+0200\n" +"Last-Translator: \n" +"Language-Team: American English \n" +"Language: eu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Izenbururik gabeko aplikazioa" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Laneko arearen aldatzailea" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Laneko area batetik bestera aldatzeko tresna" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Egin klik hemen %s laneko areara aldatzeko" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Egin klik \"%s\" arrastatzen hasteko" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Uneko laneko area: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Egin klik \"%s\"(e)ra aldatzeko" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Ez da leihorik ireki" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Leiho-hautatzailea" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Leiho batetik bestera aldatzeko tresna" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Leiho-zerrenda" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Leiho ikusgai batetik bestera aldatzeko tresna" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "M_inimizatu denak" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "_Leheneratu denak" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "M_aximizatu denak" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_Leheneratu denak" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "It_xi denak" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Le_heneratu" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "M_inimizatu" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Leh_eneratu" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "M_aximizatu" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "%d. laneko area" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "1_0 laneko area" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "%s%d laneko area" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "Aldatu _lekuz" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Aldatu _tamaina" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Beti _goian" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Laneko area ikusgaian _beti" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "Laneko area _honetan bakarrik" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Eraman e_zkerreko laneko areara" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Eraman e_skuineko laneko areara" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Eraman _gaineko laneko areara" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Eraman _azpiko laneko areara" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Aldatu beste _laneko areara" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "It_xi" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Izenbururik gabeko leihoa" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Leihoaren X-leiho IDa aztertzeko edo eraldatzeko" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "Aplikazio baten taldeko buruaren X-leiho IDa azterteko" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Talde-klasearen euskarri-klasea aztertzeko" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "KLASEA" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "Laneko arearen ZENBAKIA aztertzeko edo eraldatzeko" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "ZENBAKIA" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "Pantailaren ZENBAKIA aztertzeko edo eraldatzeko" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "'--window'(e)n goitizena" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Aplikazioaren/klasearen taldearen/laneko arearen/pantailaren leiho-zerrenda " +"(irteerako formatua: \"XID: leiho-izena\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Pantailako laneko areen zerrenda (irteerako formatua: \"Zenbakia: Laneko " +"arearen izena\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Aldatu pantailako laneko areen kopurua ZENBAKIra" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Aldatu pantailako laneko arearen diseinua ZENBAKIA errenkadak erabiltzeko" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Aldatu pantailako laneko arearen diseinua ZENBAKIA zutabeak erabiltzeko" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Erakutsi mahaigaina" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Gelditu mahaigaina erakustea" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Aldatu lekuz uneko laneko arearen leihatila X koordenatura X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Aldatu lekuz uneko laneko arearen leihatila Y koordenatura Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Minimizatu leihoa" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Leheneratu leihoa" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maximizatu leihoa" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Leheneratu leihoa" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maximizatu leihoa horizontalki" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Leheneratu leihoa horizontalki" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maximizatu leihoa bertikalki" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Leheneratu leihoa bertikalki" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Hasi leihoa mugitzen teklatuaren bidez" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Hasi leihoaren tamaina aldatzen teklatuaren bidez" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Aktibatu leihoa" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Itxi leihoa" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Leihoa pantaila osoan" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Atera leihoa pantaila osotik" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Leihoa beti goian" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Leihoa ez beti goian" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Leihoa beste leihoen azpian" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Leihoa beste leihoen azpian ez" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Itzaleztatu leihoa" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Kendu itzala leihoari" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Leihoa posizio finkoarekin leihatilan" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Leihoa posizio ez finkoarekin leihatilan" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Leihoa ez dadila orrikatzailean agertu" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Leihoa agertu dadila orrikatzailean" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Leihoa ez dadila zereginen zerrendetan agertu" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Leihoa agertu dadila zereginen zerrendetan" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Leihoa ikusgai laneko area guztietan" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Leihoa ikusgai uneko laneko arean soilik" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Eraman leihoa ZENBAKIA. laneko areara (aurrenekoa 0 da)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Aldatu leihoaren X koordenatua Xera" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Aldatu leihoaren Y koordenatua Yera" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Aldatu leihoaren zabalera ZABALERAra" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "ZABALERA" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Aldatu leihoaren altuera ALTUERAra" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "ALTUERA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Aldatu leihoaren mota MOTAra (baliozko balioak: arrunta, mahaigaina, " +"atrakagarria, elkarrizketa-koadroa, tresna-barra, menua, tresna, harrerako " +"pantaila)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "MOTA" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Aldatu laneko arearen izena IZENAra" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "IZENA" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Aktibatu laneko area" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Baliogabeko \"%s\" balioa --%s aukeran" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: %d. pantailarekin elkarreragin behar " +"zuen, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: %d pantailako leihoak edo laneko areak " +"zerrendatu behar ziren, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: %d. laneko arearekin elkarreragin behar " +"zuen, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: %d laneko areako leihoak zerrendatu " +"behar ziren, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: aplikazio batekin elkarreragin behar " +"zuen, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: aplikazio baten leihoak zerrendatu " +"behar ziren, baina --%s erabili da\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: \"%s\" talde-klasearekin elkarreragin " +"behar zuen, baina --%s erabili da\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: \"%s\" klase-taldearen leihoak " +"zerrendatu behar ziren, baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Gatazkan dauden aukerak agertu dira: leiho batekin elkarreragin behar zuen, " +"baina --%s erabili da\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Gatazkan dauden aukerak agertu dira: --%s eta --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Baliogabeko \"%d\" argumentua --%s aukeran: argumentua derrigorrez positiboa " +"izan behar da\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Baliogabeko \"%d\" argumentua --%s aukeran: argumentua positiboa izan behar " +"da\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Gatazkan dauden aukerak agertu dira: --%s edo --%s, eta --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Baliogabeko \"%s\" argumentua --%s aukeran. Baliozko balioak: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Ezin da pantailako laneko arearen diseinua aldatu: diseinuak badu jadanik " +"jabea\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Leihatila ezin da lekuz aldatu: uneko laneko areak ez du leihatilarik\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Leihatila ezin da lakuz aldatu: ez dago uneko laneko arearik\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Ekintza ez dago baimendua\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Leihoa ezin da %d laneko areara eraman: laneko area ez da existitzen\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Pantaila-zenbakia: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (zabalera, altuera): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Laneko areen kopurua: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Laneko arearen diseinua (errenkadak, zutabeak, orientazioa): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Leiho-kudeatzailea: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "bat ere ez" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Laneko area aktiboa: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "bat ere ez" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Leiho aktiboa: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Mahaigaina erakusten: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "egia" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "faltsua" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Laneko arearen izena: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Laneko arearen zenbakia: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Pantailan: %d (leiho-kudeatzailea: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Leihatilaren posizioa (x,y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Diseinuaren posizioa (errenkada, zutabea): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Ezkerreko kidea: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Eskuineko kidea: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Goiko kidea: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Beheko kidea: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Klase-taldearen IDa: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Klase-taldearen izena: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "ezarri" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikonoak: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Leihoen kopurua: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Izena: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ikono-izena: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "bat ere ez" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Abioko IDa: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "laneko area guztiak" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Laneko arean: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "leiho arrunta" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "mahaigaina" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "atrakagarria edo panela" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "elkarrizketa-koadroa" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "tresna-barra askagarria" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "menu askagarria" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "tresnen leihoa" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "harrerako pantaila" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Leiho mota: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, zabalera, altuera): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Klasearen instantzia: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Saioaren IDa: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Taldeko burua: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Honen behin-behinekoa: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "minimizatua" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maximizatua" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "horizontalki maximizatua" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "bertikalki maximizatua" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "itzaldurarekin" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "sastatuta" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "itsaskorra" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "gainean" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "azpian" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "pantaila osoa" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "arreta behar du" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "saltatu orrikatzailea" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "saltatu zereginen zerrenda" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "arrunta" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "Egoera: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "aldatu lekuz" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "aldatu tamaina" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "itzaldura" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "itzaldurarik ez" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "itsatsi" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "askatu" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maximizatu horizontalki" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "leheneratu horizontalki" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maximizatu bertikalki" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "leheneratu bertikalki" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "aldatu laneko area" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "orratza" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "orratz gabe" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "minimizatu" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "leheneratu" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "maximizatu" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "leheneratu" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "aldatu pantaila osoko modua" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "itxi" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "jarri gainean" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "ez jarri gainean" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "jarri azpian" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "ez jarri azpian" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "ez dago ekintza posiblerik" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Ekintza posibleak: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Erakutsi edo aldatu pantailaren/laneko arearen/leihoaren propietateak, edo " +"elkarreragin berarekin, EWHM zehaztapena jarraituz.\n" +"Zehaztapen honi buruzko informazio gehiago:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Aukerak leihoak edo laneko areak zerrendatzeko" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Erakutsi leihoak edo laneko areak zerrendatzeko aukerak" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Aukerak leihoaren propietateak aldatzeko" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Erakutsi leihoaren propietateak aldatzeko aukerak" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Aukerak laneko arearen propietateak aldatzeko" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Erakutsi laneko arearen propietateak aldatzeko aukerak" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Aukerak pantailaren propietateak aldatzeko" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Erakutsi pantailaren propietateak aldatzeko aukerak" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Errorea argumentuak analizatzean: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Ezin da %d. pantailarekin elkarreragin: pantaila ez da existitzen\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Ezin da %d laneko arearekin elkarreragin: ezin da laneko area aurkitu\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Ezin da \"%s\" klase-taldearekin elkarreragin: ezin da klase-taldea aurkitu\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Ezin da %lu XID talde-buruaren aplikazioarekin elkarreragin: ez da " +"aplikazioa aurkitu\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Ezin da %lu XID leihoarekin elkarreragin: ezin da leihoa aurkitu\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Erabili N_ROWS errenkadak" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Uneko laneko area soilik erakutsi" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Erabili Esk->Ezk norabide lehenetsi gisa" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Erakutsi laneko areen izenak edukien ordez" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Erabili orientazio bertikala" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Ez erakutsi leihoa atazen zerrendan" + +#~ msgid "Always group windows" +#~ msgstr "Beti elkartu leihoak" + +#~ msgid "Never group windows" +#~ msgstr "Inoiz ez elkartu leihoak" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Bistaratu laneko areetako leiho guztiak" + +#~ msgid "Enable Transparency" +#~ msgstr "Gaitu gardentasuna" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Euskarri klasea: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Taldearen izena: %s\n" diff --git a/po/fa.gmo b/po/fa.gmo new file mode 100644 index 0000000..8f35a3a Binary files /dev/null and b/po/fa.gmo differ diff --git a/po/fa.po b/po/fa.po new file mode 100644 index 0000000..df06696 --- /dev/null +++ b/po/fa.po @@ -0,0 +1,1245 @@ +# Translation of libwnck to Persian. +# Copyright (C) 2010, 2011 Iranian Free Software Users Group (IFSUG.org)translation team +# This file is distributed under the same license as the libwnck package. +# Roozbeh Pournader , 2002, 2003. +# Meelad Zakaria , 2004. +# Mahyar Moghimi , 2010. +# Arash Mousavi , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-09-01 20:39+0000\n" +"PO-Revision-Date: 2011-09-06 23:51+0330\n" +"Last-Translator: Arash Mousavi \n" +"Language-Team: Persian \n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Persian\n" +"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "برنامه‌ی بی‌عنوان" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "تعویض کننده فضای کاری" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "ابزار تعویض بین فضاهای کاری" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "برای تعویض به فضای کاری %s این‌جا کلیک کنید" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "برای شروع کشیدن «%s» کلیک کنید" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "فضای کاری جاری: «%s»" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "برای رفتن به «%s» کلیک کنید" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "هیچ پنجره‌ای باز نیست" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "گزیننده‌ی پنجره‌ها" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "ابزاری برای جا‌به‌جایی بین پنجره‌ها" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "فهرست پنجره‌ها" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "ابزاری برای جا‌به‌جایی بین فضاهای کاری نمایان" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "_حداقل کردن همه" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "_ناحداقل کردن همه" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "_حداکثر کردن همه" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "_ناحداکثر کردن همه" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "ب_ستن همه" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "ناحداق_ل کردن" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "حدا_قل کردن" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "ناحداک_ثر کردن" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "حدا_کثر کردن" + +#: ../libwnck/window-action-menu.c:742 +#: ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "فضای کاری %Id" + +#: ../libwnck/window-action-menu.c:751 +#: ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "فضای کاری ۱_۰" + +#: ../libwnck/window-action-menu.c:753 +#: ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "فضای کاری %s%Id" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_جابه‌جایی" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_تغییر اندازه" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "همیشه در _بالا" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "فقط در _فضای کاری نمایان" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "فقط در _این فضای کاری" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "جابه‌جایی به فضای کاری _چپ" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "جابه‌جایی به فضای کاری _راست" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "جابه‌جایی به فضای کاری _بالا" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "جابه‌جایی به فضای کاری _پایین" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "نقل مکان به یک _فضای کاری دیگر" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "ب_ستن" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "پنجره‌ی بی‌عنوان" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "شناسه‌ی پنجره‌ی X برای امتحان یا تغییر" + +#: ../libwnck/wnckprop.c:138 +#: ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "شناسه‌ی پنجره‌ی X مربوط به سردسته‌ی گروهِ یک برنامه، جهت آزمایش شود" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "منبع رده مربوط، به گروه رده جهت آزمایش" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "شماره فضاهای کاری برای آزمایش یا تغییر" + +#: ../libwnck/wnckprop.c:151 +#: ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 +#: ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 +#: ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "شماره‌ی صفحه‌ی نمایش برای آزمایش یا تغییر" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "نام مستعار --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "پنجره‌های برنامه/گروه رده/فضای کاری/صفحه‌نمایش، فهرست شوند (قالب خروجی: «شناسه‌ی X: نام پنجره»)" + +#: ../libwnck/wnckprop.c:165 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "فضاهای کاری صفحه‌نمایش فهرست شوند (قالب خروجی «شماره: نام فضای کاری»)" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "تغییر تعداد فضاهای کاری صفحه‌ نمایش به NUMBER" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "تغییر صفحه‌بندی فضای کاریِ صفحه نمایش برای استفاده از NUMBER سطر" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "صفحه‌بندی فضای کاری صفحه نمایش تغییر داده شود تا از NUMBER ستون استفاده کند" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "رومیزی نشان داده شود" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "توقف نمایش رومیزی" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "نما فضای‌کاری جاری روی محور X به مختصات X جابه‌جا شود" + +#: ../libwnck/wnckprop.c:184 +#: ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "نما فضای‌کاری جاری روی محور Y به مختصات Y جابه‌جا شود" + +#: ../libwnck/wnckprop.c:189 +#: ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "حداقل کردن پنجره" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "ناحداقل کردن پنجره" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "حداکثر کردن پنجره" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "ناحداکثر کردن پنجره" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "پنجره به صورت افقی حداکثر شود" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "پنجره به صورت افقی ناحداکثر شود" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "پنجره به صورت عمودی حداکثر شود" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "پنجره به صورت عمودی ناحداکثر شود" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "آغاز حرکت پنجره توسط صفحه کلید" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "آغاز تغییر اندازه پنجره توسط صفحه کلید" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "فعال‌کردن پنجره" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "بستن پنجره" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "پنجره، تمام صفحه شود" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "پنجره از حالت تمام صفحه خارج شود" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "پنجره همیشه بالا باشد" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "پنجره همیشه بالا نباشد" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "پنجره پشت همه پنجره‌ها باشد" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "پنجره پشت همه پنجره‌ها نباشد" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "پنجره سایه خورده شود" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "پنجره بی‌سایه شود" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "پنجره در نما، مکان ثابتی داشته باشد" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "پنجره در نما، مکان ثابتی نداشته باشد" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "پنجره در پی‌جو پدیدار نشود" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "پنجره در پی‌جو پدیدار شود" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "پنجره در فهرست وظایف پدیدار نشود" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "پنجره در فهرست وظایف پدیدار شود" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "پنجره در تمام فضاهای‌کاری دیده شود" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "پنجره فقط در فضای‌کاری جاری دیده شود" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "جابه‌جایی پنجره به فضای کاری NUMBER (اولین فضای کاری صفر است)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "مختصات پنجره روی محور X به X تغییر کند" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "مختصات پنجره روی محور Y به Y تغییر کند" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "پهنای پنجره WIDTH شود" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "درازای پنجره HEIGHT شود" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "تغییر نوع پنجره به به TYPE ( مقادیر معتبر: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "تغییر نام فضای‌کاری به NAME" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "فعال کردن فضای‌کاری" + +#: ../libwnck/wnckprop.c:385 +#: ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 +#: ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "مقدار نا‌معتبر «%s» برای --%s" + +#: ../libwnck/wnckprop.c:502 +#: ../libwnck/wnckprop.c:521 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: با صفحه نمایش %Id باید کار شود ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: پنجره‌های یا فضاهای کاری صفحه‌نمایش %Id باید فهرست شوند ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:534 +#: ../libwnck/wnckprop.c:554 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: با فضای کاری %Id باید کار شود ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: پنجره‌های فضای کاری %Id باید فهرست شوند ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: با یک برنامه باید کار شود ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: پنجره‌های یک برنامه باید فهرست شوند ولی --%s استفاده شده است\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: با گروه رده‌ی «%s» باید کار شود ولی --%s استفاده شده است\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: پنجره‌های گروه رده‌ی «%s» باید فهرست شوند ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:614 +#: ../libwnck/wnckprop.c:623 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "گزینه‌های مغایر وجود دارند: با یک پنجره باید کار شود ولی --%s استفاده شده است\n" + +#: ../libwnck/wnckprop.c:642 +#: ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "گزینه‌های مغایر وجود دارند: --%s و --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "نشانوند نامعتبر «%d» برای --%s: نشانوند باید اکیدا مقداری مثبت باشد\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "نشانوند نامعتبر «%d» برای --%s: نشانوند باید مقداری مثبت باشد\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "گزینه‌های مغیر وجود دارند: --%s یا --%s، و --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "نشانوند نامعتبر «%s» برای --%s: مقادیر معتبر عبارتند از %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "چیدمان فضای‌کاری روی صفحه نمایش قابل تغییر نیست: این چیدمان از قبل به برنامه‌ی دیگری تعلق دارد \n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "نما را نمی‌توان جابه‌جا کرد: فضای‌کاری جاری هیچ نمایی ندارد\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "نما را نمی‌توان جابه‌جا کرد: فضای‌کاری جاری وجود ندارد\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 +#: ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 +#: ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 +#: ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 +#: ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "چنین عملی اجازه داده نمی‌شود\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "پنجره را نمی‌توان به فضای‌کاری %Id برد: فضای‌کاری مورد نظر وجود ندارد\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 +#: ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "<بی‌نام>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%Id: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "شماره‌ی صفحه‌نمایش: %Id\n" + +#: ../libwnck/wnckprop.c:1190 +#: ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "مختصات (پهنا، درازا): %Id ، %Id \n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "تعداد فضاهای‌کاری %Id\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "چیدمان فضای‌کاری (ردیف‌ها، ستون‌ها، جهت): %Id, %Id, %s\n" + +#: ../libwnck/wnckprop.c:1210 +#: ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "<مدیر پنجره‌ی سازگار با EWMH وجود ندارد >" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "مدیر پنجره: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 +#: ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 +#: ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 +#: ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%Id («%s»)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 +#: ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 +#: ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 +#: ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "هیچ" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "فضای‌کاری فعال: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "«%s»" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "هیچ" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "پنجره‌ی فعال: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "نمایش رومیزی: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "درست" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "نادرست" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "فضای‌کاری %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "فضای‌کاری شماره‌ی %Id\n" + +#: ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "روی صفحه‌نمایش: %Id (مدیر پنجره: %s) \n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "<هیچ نمایی نیست>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "مکان نما (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "مکان در چیدمان (سطر، ستون): %Id, %Id\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "همسایه‌ی چپ: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "همسایه‌ی راست: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "همسایه‌ی بالا: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "همسایه‌ی پایین: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 +#: ../libwnck/wnckprop.c:1511 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Group ID: %s\n" +msgstr "شناسه گروه رده: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Group Name: %s\n" +msgstr "نام گروه رده: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 +#: ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "تنظیم شد" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 +#: ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 +#: ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 +#: ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 +#: ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "<تنظیم نشده است>" + +#: ../libwnck/wnckprop.c:1366 +#: ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "شمایل‌ها: %s\n" + +#: ../libwnck/wnckprop.c:1369 +#: ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "تعداد پنجره‌ها: %Id\n" + +#: ../libwnck/wnckprop.c:1381 +#: ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "نام: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "نام شمایل: %s\n" + +#: ../libwnck/wnckprop.c:1397 +#: ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "هیچ" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "شناسه‌ی آغاز: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "همه‌ی فضاهای‌کاری" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "در فضای‌کاری %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "پنجره‌ی معمولی" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "رومیزی" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "تابلو یا داک" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "پنجره‌ی محاوره" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "نوا ابزار آژدار" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "منوی آژدار" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "پنجره‌ی ابزار" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "صفحه‌ی شروع" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "نوع پنجره: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "مختصات (x ,y، پهنا، درازا): %Id, %Id, %Id, %Id\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +#| msgid "Class Group: %s\n" +msgid "Class Instance: %s\n" +msgstr "نمونه رده: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "شناسه‌ی نشست: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "سردسته‌ی گروه: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "در بالا: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 +#: ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 +#: ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr "،" + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "حداقل شده" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "حداکثر شده" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "بصورت افقی حداکثر شده" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "بصورت عمودی حداکثر شده" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "سایه خورده" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "میخ شده" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "چسبناک" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "بالا" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "پایین" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "تمام صفحه" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "نیاز توجه دارد" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "پرش از پی‌جو" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "پرش از فهرست وظایف" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "معمولی" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "وضعیت: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "جابه‌جایی" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "تغییر اندازه" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "سایه" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "بدون سایه" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "چسباندن" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "ناچسباندن" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "بصورت افقی حداکثر شود" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "بصورت افقی ناحداکثر شود" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "بصورت عمودی حداکثر شود" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "بصورت عمودی ناحداکثر شود" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "تغییر فضای‌کاری" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "میخ‌زدن" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "میخ‌برداشتن" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "حداقل کردن" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "ناحداقل کردن" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "حداکثر کردن" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "ناحداکثر کردن" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "تغییر حالت تمام‌صفحه" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "بستن" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "پیش رو گذاشته شود" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "برداشتن از پیش رو" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "زیر گذاشته شود" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "برداشتن از زیر" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "هیچ عملی ممکن نیست" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "اعمال ممکن: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"چاپ یا دست‌کاری ویژگی‌های صفحه نمایش/فضای کاری/پنجره، یا کار کردن با آن‌ها، با پیروی از مشخصه‌ی EWMH \n" +"برای اطلاعات بیشتر در مورد این مشخصه، این‌جا را ببینید: \n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "گزینه‌ها برای فهرست کردن پنجره‌ها یا فضاهای‌کاری" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "نمایش گزینه‌ها برای فهرست کردن پنجره‌ها یا فضاهای‌کاری" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "گزینه‌هایی برای دست‌کاری ویژگی‌های یک پنجره" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "نمایش گزینه‌ها برای دست‌کاری ویژگی‌های یک پنجره" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "گزینه‌هایی برای دست‌کاری ویژگی‌های یک فضای‌کاری" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "نمایش گزینه‌ها برای دست‌کاری ویژگی‌های یک فضای کاری" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "گزینه‌هایی برای دست‌کاری ویژگی‌های یک صفحه نمایش" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "برای دست‌کاری ویژگی‌های یک صفحه‌نمایش، گزینه‌ها نشان داده شوند" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "خطا در تجزیه‌ی نشانوند: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "نمی‌توان با صفحه‌نمایش %Id کار کرد: صفحه‌نمایش وجود ندارد\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "نمی‌توان با فضای‌کاری %Id کار کرد: فضای‌کاری یافت نمی‌شود\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "نمی‌توان با گروه رده «%s» کار کرد: گروه رده یافت نمی‌شود\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "نمی‌توان با برنامه که سردسته‌ی گروهش XID %lu دارد، کار کرد: برنامه پیدا نمی‌شود\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "نمی‌توان با پنجره با XID %lu کار کرد: پنجره یافت نمی‌شود\n" + +#~ msgid "Resource Class: %s\n" +#~ msgstr " نام رده‌ی منبع: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "نام گروه: %s\n" + +#~ msgid "Only show current workspace" +#~ msgstr "فقط فضای کاری جاری نشان داده شود" + +#~ msgid "Use RTL as default direction" +#~ msgstr "از راست به چپ به عنوان جهت پیش‌فرض استفاده شود" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "نام فضاهای کاری را به جای محتوای آن‌ها نشان داده شود" + +#~ msgid "Use a vertical orientation" +#~ msgstr "از جهت عمودی استفاده شود" + +#~ msgid "Always group windows" +#~ msgstr "همیشه پنجره‌ها گروه‌بندی شوند" + +#~ msgid "Never group windows" +#~ msgstr "پنجره‌های هیچوقت گروه‌بندی نشوند" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "پنجره‌های از تمام فضاهای کاری نشان داده شوند" + +#~ msgid "Enable Transparency" +#~ msgstr "شفافیت به کار افتد" + +#~ msgid "_Unroll" +#~ msgstr "_پایین زدن" + +#~ msgid "Roll _Up" +#~ msgstr "_بالا زدن" diff --git a/po/fi.gmo b/po/fi.gmo new file mode 100644 index 0000000..6639353 Binary files /dev/null and b/po/fi.gmo differ diff --git a/po/fi.po b/po/fi.po new file mode 100644 index 0000000..adfe7e1 --- /dev/null +++ b/po/fi.po @@ -0,0 +1,1015 @@ +# libwnck Finnish translation +# Copyright (C) 2002-2009 Free Software Foundation, Inc. +# +# Suomennos: https://l10n.gnome.org/teams/fi/ +# Ilkka Tuohela , 2005-2009. +# Tommi Vainikainen , 2011. +# Pauli Virtanen , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-09-26 10:00+0300\n" +"PO-Revision-Date: 2011-09-26 10:00+0300\n" +"Last-Translator: Tommi Vainikainen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Nimetön sovellus" + +msgid "Workspace Switcher" +msgstr "Työtilanvaihtaja" + +msgid "Tool to switch between workspaces" +msgstr "Työkalu, jolla voi vaihtaa työtilaa" + +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Napsauta tätä vaihtaaksesi työtilaan %s" + +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Raahaa ikkunaa ”%s” napsauttamalla" + +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Nykyinen työpöytä: ”%s”" + +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Siirry työtilaan ”%s” napsauttamalla" + +msgid "No Windows Open" +msgstr "Ei ikkunoita avoinna" + +msgid "Window Selector" +msgstr "Ikkunanvalitsin" + +msgid "Tool to switch between windows" +msgstr "Työkalu, jolla voi siirtyä ikkunoiden välillä" + +msgid "Window List" +msgstr "Ikkunaluettelo" + +msgid "Tool to switch between visible windows" +msgstr "Työkalu, jolla voi siirtyä näkyvien ikkunoiden välillä" + +msgid "Mi_nimize All" +msgstr "_Pienennä kaikki" + +msgid "Un_minimize All" +msgstr "_Palauta kaikki" + +msgid "Ma_ximize All" +msgstr "S_uurenna kaikki" + +msgid "_Unmaximize All" +msgstr "_Palauta kaikki" + +msgid "_Close All" +msgstr "_Sulje kaikki" + +msgid "Unmi_nimize" +msgstr "_Palauta" + +msgid "Mi_nimize" +msgstr "_Pienennä" + +msgid "Unma_ximize" +msgstr "Pa_lauta koko" + +msgid "Ma_ximize" +msgstr "S_uurenna" + +#, c-format +msgid "Workspace %d" +msgstr "Työtila %d" + +#, c-format +msgid "Workspace 1_0" +msgstr "Työtila 1_0" + +#, c-format +msgid "Workspace %s%d" +msgstr "Työtila %s%d" + +msgid "_Move" +msgstr "S_iirrä" + +msgid "_Resize" +msgstr "_Muuta kokoa" + +msgid "Always On _Top" +msgstr "Aina _päällimmäisenä" + +msgid "_Always on Visible Workspace" +msgstr "Näytä _aina näkyvässä työtilassa" + +msgid "_Only on This Workspace" +msgstr "Näytä vain _tässä työtilassa" + +msgid "Move to Workspace _Left" +msgstr "Siirrä _vasempaan työtilaan" + +msgid "Move to Workspace R_ight" +msgstr "Siirrä _oikeaan työtilaan" + +msgid "Move to Workspace _Up" +msgstr "Siirrä _yllä olevaan työtilaan" + +msgid "Move to Workspace _Down" +msgstr "Siirrä _alla olevaan työtilaan" + +msgid "Move to Another _Workspace" +msgstr "Siirrä toiseen t_yötilaan" + +msgid "_Close" +msgstr "_Sulje" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Nimeämätön ikkuna" + +msgid "X window ID of the window to examine or modify" +msgstr "Tutkittavan tai muokattavan ikkunan X-ikkunatunniste" + +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "Tutkittavan sovelluksen ikkunaryhmän johtajan X-ikkunatunniste" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +msgid "Class resource of the class group to examine" +msgstr "Luokkaryhmästä tutkittava luokkaresurssi" + +msgid "CLASS" +msgstr "LUOKKA" + +msgid "NUMBER of the workspace to examine or modify" +msgstr "Tutkittavan tai muokattavan työpöydän numero" + +msgid "NUMBER" +msgstr "NUMERO" + +msgid "NUMBER of the screen to examine or modify" +msgstr "Tutkittavan tai muokattavan näytön NUMERO" + +msgid "Alias of --window" +msgstr "Alias valitsimelle --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Näytä sovelluksen/luokan, ryhmän/työpöydän/ruudun ikkunat (näyttömuoto: " +"”XID: Window Name”)" + +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "Näytä ruudun työtilat (näyttömuoto: ”Numero: Työtilan nimi”)" + +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Muuta ruudun työtilojen lukumääräksi NUMERO" + +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Muuta työtilojen asettelu käyttämään NUMEROa riviä" + +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Muuta työtilojen asettelu käyttämään NUMEROa saraketta" + +msgid "Show the desktop" +msgstr "Näytä työpöytä" + +msgid "Stop showing the desktop" +msgstr "Lopeta työpöydän näyttäminen" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Siirrä nykyisen työtilan katselunäkymä X-koordinaattiin X" + +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Siirrä nykyisen työtilan katselunäkymä Y-koordinaattiin Y" + +msgid "Y" +msgstr "Y" + +msgid "Minimize the window" +msgstr "Pienennä ikkuna" + +msgid "Unminimize the window" +msgstr "Palauta ikkuna" + +msgid "Maximize the window" +msgstr "Suurenna ikkuna" + +msgid "Unmaximize the window" +msgstr "Pa_lauta ikkunan koko" + +msgid "Maximize horizontally the window" +msgstr "Suurenna ikkuna vaakasuunnassa" + +msgid "Unmaximize horizontally the window" +msgstr "Peru ikkunan suurennus vaakasuunnassa" + +msgid "Maximize vertically the window" +msgstr "Suurenna ikkunan pystysuunnassa" + +msgid "Unmaximize vertically the window" +msgstr "Peru ikkunan suurennus pystysuunnassa" + +msgid "Start moving the window via the keyboard" +msgstr "Aloita ikkunan siirtäminen näppäimistöltä" + +msgid "Start resizing the window via the keyboard" +msgstr "Aloita ikkunan koon muuttaminen näppäimistöltä" + +msgid "Activate the window" +msgstr "nimetön ikkuna" + +msgid "Close the window" +msgstr "Sulje ikkuna" + +msgid "Make the window fullscreen" +msgstr "Tee ikkunasta koko ruudun kokoinen" + +msgid "Make the window quit fullscreen mode" +msgstr "Palauta ikkuna kokoruututilasta" + +msgid "Make the window always on top" +msgstr "Pidä ikkuna aina päällimmäisenä" + +msgid "Make the window not always on top" +msgstr "Peru ikkunan olo aina päällimmäisenä" + +msgid "Make the window below other windows" +msgstr "Pidä ikkuna aina muiden ikkunoiden alla" + +msgid "Make the window not below other windows" +msgstr "Peru ikkunan olo aina muiden alla" + +msgid "Shade the window" +msgstr "Rullaa ikkuna" + +msgid "Unshade the window" +msgstr "Avaa rullattu ikkuna" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Make the window have a fixed position in the viewport" +msgstr "Kiinnitä ikkuna tiettyyn paikkaan katselunäkymässä" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +msgid "Make the window not have a fixed position in the viewport" +msgstr "Irrota ikkunan kiinnitys tiettyyn paikkaan katselunäkymässä" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +msgid "Make the window not appear in pagers" +msgstr "Piilota ikkuna työtilanäkymistä" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +msgid "Make the window appear in pagers" +msgstr "Näytä ikkuna työtilanäkymissä" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +msgid "Make the window not appear in tasklists" +msgstr "Piilota ikkuna tehtävälistoista" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +msgid "Make the window appear in tasklists" +msgstr "Näytä ikkuna tehtävälistoissa" + +msgid "Make the window visible on all workspaces" +msgstr "Näytä ikkuna kaikissa työtiloissa" + +msgid "Make the window visible on the current workspace only" +msgstr "Näytä ikkunan vain tässä työtilassa" + +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Siirrä ikkuna työtilaan NUMERO (ensimmäinen on numero 0)" + +msgid "Change the X coordinate of the window to X" +msgstr "Muuta ikkunan X-koordinaatti arvoon X" + +msgid "Change the Y coordinate of the window to Y" +msgstr "Muuta ikkunan Y-koordinaatti arvoon Y" + +msgid "Change the width of the window to WIDTH" +msgstr "Muuta ikkunan leveys arvoon LEVEYS" + +msgid "WIDTH" +msgstr "LEVEYS" + +msgid "Change the height of the window to HEIGHT" +msgstr "Muuta ikkunan korkeus arvoon KORKEUS" + +msgid "HEIGHT" +msgstr "KORKEUS" + +#. Translators: do not translate "normal, desktop, dock..." +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Muuta ikkunan tyypiksi TYYPPI (kelvolliset arvot: normal, desktop, dock, " +"dialog, toolbar, menu, utility tai splash)" + +msgid "TYPE" +msgstr "TYYPPI" + +msgid "Change the name of the workspace to NAME" +msgstr "Muuta työtilan nimi arvoon NIMI" + +msgid "NAME" +msgstr "NIMI" + +msgid "Activate the workspace" +msgstr "Siirry työtilaan" + +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Virheellinen arvo ”%s” valitsimelle --%s" + +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti käsitellä ruutua %d, mutta havaittiin " +"valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti näyttää ruudun %d ikkunoita tai työtiloja, " +"mutta havaittiin valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti käsitellä työtilaa %d, mutta havaittiin " +"valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti näyttää työtilan %d ikkunat, mutta " +"havaittiin valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti käsitellä sovellusta, mutta havaittiin " +"valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti näyttää sovelluksen ikkunat, mutta " +"havaittiin valitsin --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti käsitellä luokkaryhmää ”%s”, mutta " +"havaittiin valitsin --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti näyttää luokkaryhmää ”%s” ikkunat, mutta " +"havaittiin valitsin --%s\n" + +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ristiriitaisia valitsimia: piti käsitellä ikkunaa, mutta havaittiin valitsin " +"--%s\n" + +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Ristiriitaisia valitsimia: --%s ja --%s\n" + +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Virheellinen arvo ”%d” valitsimelle --%s: arvon tulee olla positiivinen " +"kokonaisluku\n" + +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"virheellinen arvo ”%d” valitsimelle --%s: arvon tulee olla positiivinen\n" + +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Ristiriitaisia valitsimia: --%s tai --%s ja --%s\n" + +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Virheellinen arvo ”%s” valitsimelle --%s, kelvolliset arvot ovat: %s\n" + +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "Ruudun työtilojen asettelua ei voi muuttaa: asettelu on jo omistettu\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Katselunäkymää ei voi siirtää: nykyisessä työtilassa ei ole katselunäkymää\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Katselunäkymää ei voi siirtää: nykyistä työtilaa ei ole määritelty\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#, c-format +msgid "Action not allowed\n" +msgstr "Toiminto ei ole sallittu\n" + +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Ikkunaa ei voi siirtää työtilaan %d: työtilaa ei ole olemassa\n" + +#. Translators: 'unset' in the sense of "something has not been set". +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ruudun numero: %d\n" + +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (leveys, korkeus): %d, %d\n" + +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Työtilojen lukumäärä: %d\n" + +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Työtilojen asettelu (rivejä, sarakkeita, suunta): %d, %d, %s\n" + +msgid "" +msgstr "" + +#, c-format +msgid "Window Manager: %s\n" +msgstr "Ikkunamanager: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (”%s”)" + +#. Translators: "none" here means "no workspace" +msgctxt "workspace" +msgid "none" +msgstr "ei työpöytää" + +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Valittu työtila %s\n" + +#, c-format +msgid "\"%s\"" +msgstr "”%s”" + +#. Translators: %lu is a window identifier (number) and %s a window name +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +msgctxt "window" +msgid "none" +msgstr "ei ikkunaa" + +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktiivinen ikkuna: %s\n" + +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Näytetään työpöytä: %s\n" + +msgid "true" +msgstr "tosi" + +msgid "false" +msgstr "epätosi" + +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Työtilan nimi: %s\n" + +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Työtilan numero: %d\n" + +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Näytöllä: %d (ikkunamanager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Katselunäkymä sijainti (x, y): %s\n" + +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Sijainti asettelussa (rivi, sarake): %d %d\n" + +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Vasen naapuri: %s\n" + +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Oikea naapuri: %s\n" + +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Ylempi naapuri: %s\n" + +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Alempi naapuri: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Luokkaryhmätunniste: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Luokkaryhmänimi: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +msgid "set" +msgstr "asetettu" + +#. Translators: 'unset' in the sense of "something has not been set". +msgid "" +msgstr "" + +#, c-format +msgid "Icons: %s\n" +msgstr "Kuvakkeet: %s\n" + +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Ikkunoiden lukumäärä: %d\n" + +#, c-format +msgid "Name: %s\n" +msgstr "Nim: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#, c-format +msgid "Icon Name: %s\n" +msgstr "Kuvakkeen nimi: %s\n" + +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +msgctxt "startupID" +msgid "none" +msgstr "ei tunnistetta" + +#, c-format +msgid "Startup ID: %s\n" +msgstr "Käynnistystunniste: %s\n" + +msgid "all workspaces" +msgstr "kaikki työtilat" + +#, c-format +msgid "On Workspace: %s\n" +msgstr "Työtilassa: %s\n" + +msgid "normal window" +msgstr "tavallinen ikkuna" + +msgid "desktop" +msgstr "työpöytä" + +msgid "dock or panel" +msgstr "telakka tai paneeli" + +msgid "dialog window" +msgstr "valintaikkuna" + +msgid "tearoff toolbar" +msgstr "irrotettu työkalupalkki" + +msgid "tearoff menu" +msgstr "irrotettu valikko" + +msgid "utility window" +msgstr "apuikkuna" + +msgid "splash screen" +msgstr "aloitusikkuna" + +#, c-format +msgid "Window Type: %s\n" +msgstr "Ikkunan tyyppi: %s\n" + +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, leveys, korkeus): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#, c-format +msgid "Class Instance: %s\n" +msgstr "Luokkainstanssi: %s\n" + +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#, c-format +msgid "Session ID: %s\n" +msgstr "Istuntotunniste: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Ryhmänjohtaja: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#, c-format +msgid "Transient for: %lu\n" +msgstr "Ali-ikkuna tunnisteelle: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +msgid ", " +msgstr ", " + +msgid "minimized" +msgstr "pienennetty" + +msgid "maximized" +msgstr "suurennettu" + +msgid "maximized horizontally" +msgstr "suurennettu vaakasuunnassa" + +msgid "maximized vertically" +msgstr "suurennettu pystysuunnassa" + +msgid "shaded" +msgstr "rullattu" + +msgid "pinned" +msgstr "kiinnitetty" + +msgid "sticky" +msgstr "tahmea" + +msgid "above" +msgstr "yllä" + +msgid "below" +msgstr "alla" + +msgid "fullscreen" +msgstr "kokoruutu" + +msgid "needs attention" +msgstr "kaipaa huomiota" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +msgid "skip pager" +msgstr "ei ikkunavalitsimessa" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +msgid "skip tasklist" +msgstr "ei ikkunaluettelossa" + +msgid "normal" +msgstr "tavallinen" + +#, c-format +msgid "State: %s\n" +msgstr "Tila: %s\n" + +msgid "move" +msgstr "siirrä" + +msgid "resize" +msgstr "muuta kokoa" + +msgid "shade" +msgstr "rullaa" + +msgid "unshade" +msgstr "peru rullaus" + +msgid "stick" +msgstr "tee tahmeaksi" + +msgid "unstick" +msgstr "peru tahmeus" + +msgid "maximize horizontally" +msgstr "suurenna vaakasuunnassa" + +msgid "unmaximize horizontally" +msgstr "peru vaakasuuntainen suurennus" + +msgid "maximize vertically" +msgstr "suurenna pystysuunnassa" + +msgid "unmaximize vertically" +msgstr "peru pystysuuntainen suurennus" + +msgid "change workspace" +msgstr "vaihda työtilaa" + +msgid "pin" +msgstr "kiinnitä" + +msgid "unpin" +msgstr "vapauta" + +msgid "minimize" +msgstr "pienennä" + +msgid "unminimize" +msgstr "peru pienennys" + +msgid "maximize" +msgstr "suurenna" + +msgid "unmaximize" +msgstr "palauta koko" + +msgid "change fullscreen mode" +msgstr "vaihda kokoruututilaa" + +msgid "close" +msgstr "sulje" + +msgid "make above" +msgstr "nosta ylemmäs" + +msgid "unmake above" +msgstr "peru nosto" + +msgid "make below" +msgstr "laske alle" + +msgid "unmake below" +msgstr "peru lasku" + +msgid "no action possible" +msgstr "toiminto ei ole mahdollinen" + +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Mahdolliset toiminnot: %s\n" + +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Tulosta tai muokkaa näytön, työtilan tai ikkunan ominaisuuksia, tai " +"käsittele niitä interaktiivisesti EWMH-määrittelyn mukaan.\n" +"Lisätietoja tästä määrittelystä:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +msgid "Options to list windows or workspaces" +msgstr "Valinnat ikkunoiden tai työpöytien listaamiselle" + +msgid "Show options to list windows or workspaces" +msgstr "Näytä valitsimet, joilla listataan ikkunoita tai työpöytiä" + +msgid "Options to modify properties of a window" +msgstr "Valitsimet ikkunan ominaisuuksien muuttamiseksi" + +msgid "Show options to modify properties of a window" +msgstr "Näytä valitsimet, joilla muutetaan ikkunan ominaisuuksia" + +msgid "Options to modify properties of a workspace" +msgstr "Valitsimet työtilan ominaisuuksien muuttamiseksi" + +msgid "Show options to modify properties of a workspace" +msgstr "Näytä valitsimet, joilla muutetaan työtilan ominaisuuksia" + +msgid "Options to modify properties of a screen" +msgstr "Valitsimet ruudun ominaisuuksien muuttamiseksi" + +msgid "Show options to modify properties of a screen" +msgstr "Näytä valitsimet, joilla muutetaan ruudun ominaisuuksia" + +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Virhe tulkittaessa argumentteja: %s\n" + +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Ruutua %d ei voi käsitellä: ruutua ei ole olemassa\n" + +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Työtilaa %d ei voi käsitellä: työtilaa ei löydy\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Luokkaryhmää ”%s” ei voi käsitellä: luokkaryhmää ei löydy\n" + +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Sovellusta, jonka ryhmänjohtajan XID on %lu, ei voi käsitellä: sovellusta ei " +"löydy\n" + +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Ikkunaa, jonka XID on %lu, ei voi käsitellä: ikkunaa ei löydy\n" + +#~ msgid "Only show current workspace" +#~ msgstr "Näytä vain _nykyinen työtila" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Käytä suuntana oikealta vasemmalle oletuksena" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Näytä työpöytien nimet sisällön sijasta" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Käytä pystysuuntaa" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Älä näytä ikkunaa ikkunaluettelossa" + +#~ msgid "Always group windows" +#~ msgstr "Ryhmittele ikkuna aina" + +#~ msgid "Never group windows" +#~ msgstr "Älä koskaan ryhmittele ikkunoita" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Näytä ikkunat kaikilta työpöydiltä" + +#~ msgid "Enable Transparency" +#~ msgstr "Käytä läpinäkyvyyttä" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Resurssiluokka: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Ryhmän nimi: %s\n" + +#~ msgid "Unknown Window" +#~ msgstr "Tuntematon ikkuna" + +#~ msgid "_Unroll" +#~ msgstr "_Rullaa auki" + +#~ msgid "Roll _Up" +#~ msgstr "_Rullaa" diff --git a/po/fr.gmo b/po/fr.gmo new file mode 100644 index 0000000..0efced9 Binary files /dev/null and b/po/fr.gmo differ diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..5d98b20 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,1257 @@ +# French translation of libwnck. +# Copyright (C) 2002-2011 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# +# Christophe Fergeau , 2002. +# Christophe Merlet , 2002-2006. +# Benoît Dejean , 2005. +# Baptiste Mille-Mathias , 2006. +# Stéphane Raimbault , 2007. +# Robert-André-Mauchin , 2007-2008. +# Vincent Untz , 2007. +# Claude Paroz , 2008-2011. +# +# Unmaximize, unminimize -> restaurer +# cf http://www.traduc.org/pipermail/gnomefr/2008-October/003765.html +# Minimize -> réduire +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-08-12 10:57+0000\n" +"PO-Revision-Date: 2011-08-15 20:26+0200\n" +"Last-Translator: Vincent Untz \n" +"Language-Team: GNOME French Team \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Application sans titre" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Sélecteur d'espaces de travail" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Outil pour changer d'espace de travail" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Cliquer ici pour atteindre l'espace de travail %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Cliquer pour glisser « %s »" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Espace de travail actuel : « %s »" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Cliquer pour atteindre l'espace de travail %s" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Aucune fenêtre ouverte" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Sélecteur de fenêtres" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Outil pour basculer entre les fenêtres" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Liste des fenêtres" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Outil pour basculer entre les fenêtres visibles" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "Tout réd_uire" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "Tout r_estaurer" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "Tout ma_ximiser" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "Tout r_estaurer" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "Tout _fermer" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "R_estaurer" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Réd_uire" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "R_estaurer" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximiser" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Espace de travail %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Espace de travail 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Espace de travail %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "Dé_placer" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Redimensionner" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Toujours au pre_mier plan" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "_Toujours sur l'espace de travail visible" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Seulement sur cet espace de travail" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Déplacer vers l'espace de travail de _gauche" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Déplacer vers l'espace de travail de _droite" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Déplacer vers l'espace de travail du dess_us" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Déplacer vers l'espace de travail du dess_ous" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Déplacer vers un _autre espace de travail" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Fermer" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Fenêtre sans titre" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "Identifiant X window de la fenêtre à examiner ou à modifier" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "" +"Identifiant X window du propriétaire de groupe d'une application à examiner" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Identifiant de la classe du groupe de classe à examiner" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "CLASSE" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMÉRO de l'espace de travail à examiner ou à modifier" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NUMÉRO" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMÉRO de l'écran à examiner ou à modifier" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Alias pour --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Liste les fenêtres de l'application, du groupe de classe, de l'espace de " +"travail ou de l'écran (format d'affichage : « XID : nom de la fenêtre »)" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Liste les espaces de travail d'un écran (format d'affichage : « Numéro : nom " +"de l'espace de travail »)" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Modifie le nombre d'espaces de travail de l'écran à NUMÉRO" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Modifie la disposition des espaces de travail de l'écran pour utiliser " +"NUMÉRO lignes" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Modifie la disposition des espaces de travail de l'écran pour utiliser " +"NUMÉRO colonnes" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Affiche le bureau" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Quitte l'affichage du bureau" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Déplace la vue de l'espace de travail actuel à la coordonnée horizontale X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Déplace la vue de l'espace de travail actuel à la coordonnée verticale Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Réduit la fenêtre" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Restaure la fenêtre" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maximise la fenêtre" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Restaure la fenêtre" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maximise la fenêtre horizontalement" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Restaure la fenêtre horizontalement" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maximise la fenêtre verticalement" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Restaure la fenêtre verticalement" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Débute le déplacement de la fenêtre avec le clavier" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Débute le redimensionnement de la fenêtre avec le clavier" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Active la fenêtre" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Ferme la fenêtre" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Met la fenêtre en plein écran" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Quitte le mode plein écran de la fenêtre" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Place toujours la fenêtre au premier plan" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Ne place pas toujours la fenêtre au premier plan" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Place la fenêtre au dessous des autres" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Ne place pas la fenêtre au dessous des autres" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Réplie la fenêtre" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Déplie la fenêtre" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Donne une position fixe à la fenêtre dans la vue" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Donne une position non fixe à la fenêtre dans la vue" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "N'affiche pas la fenêtre dans les sélecteurs d'espaces de travail" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Affiche la fenêtre dans les sélecteurs d'espaces de travail" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "N'affiche pas la fenêtre dans les listes de fenêtres" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Affiche la fenêtre dans les listes de fenêtres" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Affiche la fenêtre sur tous les espaces de travail" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Affiche la fenêtre uniquement sur l'espace de travail actuel" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Déplace la fenêtre vers l'espace de travail NUMÉRO (le premier espace de " +"travail est numéroté 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Modifie la coordonnée X de la fenêtre pour X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Modifie la coordonnée Y de la fenêtre pour Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Modifie la largeur de la fenêtre pour LARGEUR" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "LARGEUR" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Modifie la hauteur de la fenêtre pour HAUTEUR" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "HAUTEUR" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Modifie le type de la fenêtre pour TYPE (valeurs possibles : normal, " +"desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Modifie le nom de l'espace de travail pour NOM" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NOM" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Active l'espace de travail" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valeur « %s » non valide pour --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Ces options sont incompatibles : une interaction avec l'écran %d devrait " +"avoir lieu, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : les fenêtres ou les espaces de travail de " +"l'écran %d devraient être listés, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Ces options sont incompatibles : une interaction avec l'espace de travail %d " +"devrait avoir lieu, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : les fenêtres de l'espace de travail %d " +"devraient être listées, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : une interaction avec une application " +"devrait avoir lieu, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : les fenêtres d'une application devraient " +"êtres listées, mais --%s a été utilisé\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : une interaction avec le groupe de classe « %" +"s » devrait avoir lieu, mais --%s a été utilisé\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Ces options sont incompatibles : les fenêtres du groupe de classe « %s » " +"devraient êtres listées, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"Ces options sont incompatibles : une interaction avec une fenêtre devrait " +"avoir lieu, mais --%s a été utilisé\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Ces options sont incompatibles : --%s et --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Paramètre « %d » non valide pour --%s : ce paramètre doit être strictement " +"positif\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Paramètre « %d » non valide pour --%s : ce paramètre doit être positif\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Ces options sont incompatibles : --%s ou --%s, et --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" +"Paramètre « %s » non valide pour --%s : les valeurs possibles sont : %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Impossible de modifier la disposition des espaces de travail sur l'écran : " +"la disposition appartient déjà à un autre programme\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"La vue ne peut pas être déplacée : l'espace de travail actuel ne contient " +"pas de vue\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"La vue ne peut pas être déplacée : il n'y a pas d'espace de travail actuel\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Action non autorisée\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"La fenêtre ne peut pas être déplacée vers l'espace de travail %d : cet " +"espace de travail n'existe pas\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu : %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d : %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Numéro de l'écran : %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Dimensions (largeur, hauteur) : %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Nombre d'espaces de travail : %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Disposition des espaces de travail (lignes, colonnes, orientation) : %d, %d, " +"%s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Gestionnaire de fenêtres : %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (« %s »)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "aucun" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Espace de travail actif : %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "« %s »" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "aucune" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Fenêtre active : %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Affiche le bureau : %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "oui" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "non" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nom de l'espace de travail : %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Numéro de l'espace de travail : %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Sur l'écran : %d (gestionnaire de fenêtres : %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Position de la vue (x, y) : %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Position dans la disposition (ligne, colonne) : %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Voisin de gauche : %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Voisin de droite : %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Voisin du haut : %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Voisin du bas : %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID de groupe de classe : %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nom de groupe de classe : %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "défini" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Icônes : %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Nombre de fenêtres : %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Nom : %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nom quand icônifiée : %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID : %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "aucun" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Identifiant de démarrage : %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "tous les espaces de travail" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Sur l'espace de travail : %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "fenêtre normale" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "bureau" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "dock ou tableau de bord" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "fenêtre de dialogue" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "barre d'outils détachable" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "menu détachable" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "fenêtre utilitaire" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "écran de démarrage" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Type de la fenêtre : %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Géométrie (x, y, largeur, hauteur) : %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instance de classe : %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID : %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Identifiant de session : %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Propriétaire du groupe : %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Au dessus de (« transient ») : %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "réduite" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maximisée" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "maximisée horizontalement" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "maximisée verticalement" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "repliée" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "épinglée" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "collante" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "au-dessus" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "au-dessous" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "plein écran" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "demande votre attention" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "n'apparaît pas dans le sélecteur d'espaces de travail" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "n'apparaît pas dans la liste des fenêtres" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "État : %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "déplacer" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "redimensionner" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "replier" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "déplier" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "coller" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "décoller" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maximiser horizontalement" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "restaurer horizontalement" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maximiser verticalement" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "restaurer verticalement" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "changer d'espace de travail" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "épingler" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "desépingler" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "réduire" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "restaurer" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "maximiser" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "restaurer" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "changer le mode plein écran" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "fermer" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "mettre au-dessus" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "ne plus mettre au-dessus" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "mettre au-dessous" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "ne plus mettre au-dessous" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "pas d'action possible" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Actions possibles : %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Affiche, modifie ou interagit avec les propriétés d'une fenêtre, d'un écran " +"ou d'un espace de travail, conformément à la spécification EWMH.\n" +"Pour plus d'informations sur cette spécification, voir :\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Options pour lister les fenêtres ou les espaces de travail" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "" +"Afficher les options pour lister les fenêtres ou les espaces de travail" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Options pour modifier les propriétés d'une fenêtre" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Afficher les options pour modifier les propriétés d'une fenêtre" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Options pour modifier les propriétés d'un espace de travail" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "" +"Afficher les options pour modifier les propriétés d'un espace de travail" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Options pour modifier les propriétés d'un écran" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Afficher les options pour modifier les propriétés d'un écran" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Erreur lors du traitement des paramètres : %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Impossible d'interagir avec l'écran %d : cet écran n'existe pas\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Impossible d'interagir avec l'espace de travail %d : cet espace de travail " +"est introuvable\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Impossible d'interagir avec le groupe de classe « %s » : le groupe de classe " +"est introuvable\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Impossible d'interagir avec l'application dont le propriétaire de groupe a %" +"lu pour XID : l'application est introuvable\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Impossible d'interagir avec la fenêtre ayant pour identifiant X %lu : cette " +"fenêtre est introuvable\n" diff --git a/po/fy.gmo b/po/fy.gmo new file mode 100644 index 0000000..200d827 Binary files /dev/null and b/po/fy.gmo differ diff --git a/po/fy.po b/po/fy.po new file mode 100644 index 0000000..e31dbc3 --- /dev/null +++ b/po/fy.po @@ -0,0 +1,1221 @@ +# Frisian translation for libwnck +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the libwnck package. +# Sense Hofstede , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-20 21:41+0100\n" +"PO-Revision-Date: 2011-03-20 20:18+0000\n" +"Last-Translator: Sense Hofstede \n" +"Language-Team: Frisian \n" +"Language: fy\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-03-20 20:20+0000\n" +"X-Generator: Launchpad (build 12617)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Nammelease tapassing" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Wurkromteskeakeler" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Ark om tusken wurktomtes te skeakelje" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klik hjir om te skeakelje nei wurkromte %s" + +#: ../libwnck/pager.c:2214 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klik om te starte mei it slepe fan \"%s\"" + +#: ../libwnck/pager.c:2217 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Hjoeddeiske wurkromte: \"%s\"" + +#: ../libwnck/pager.c:2222 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klik hjir om te skeakelje nei \"%s\"" + +#: ../libwnck/selector.c:1184 +msgid "No Windows Open" +msgstr "Gjin iepen finsters" + +#: ../libwnck/selector.c:1240 +msgid "Window Selector" +msgstr "Finsterkiezer" + +#: ../libwnck/selector.c:1241 +msgid "Tool to switch between windows" +msgstr "Ark om te skeakelje tusken finsters" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Finsterlist" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Ark om te skeakelje tusken sichtbere finsters" + +#: ../libwnck/tasklist.c:2889 +msgid "Mi_nimize All" +msgstr "Alle mi_nimalisearje" + +#: ../libwnck/tasklist.c:2900 +msgid "Un_minimize All" +msgstr "Alle tebek _minimalisearje" + +#: ../libwnck/tasklist.c:2908 +msgid "Ma_ximize All" +msgstr "Alle maksimalisearje" + +#: ../libwnck/tasklist.c:2919 +msgid "_Unmaximize All" +msgstr "Alle tebek maksimalisearje" + +#: ../libwnck/tasklist.c:2931 +msgid "_Close All" +msgstr "Alle slute" + +#: ../libwnck/window-action-menu.c:417 +msgid "Unmi_nimize" +msgstr "Tebek mi_nimalisearje" + +#: ../libwnck/window-action-menu.c:424 +msgid "Mi_nimize" +msgstr "Mi_nimalisearje" + +#: ../libwnck/window-action-menu.c:432 +msgid "Unma_ximize" +msgstr "Tebek maximalisearje" + +#: ../libwnck/window-action-menu.c:439 +msgid "Ma_ximize" +msgstr "Maksimalisearje" + +#: ../libwnck/window-action-menu.c:746 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Wurkromte %d" + +#: ../libwnck/window-action-menu.c:755 ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace 1_0" +msgstr "Wurkromte 1_0" + +#: ../libwnck/window-action-menu.c:757 ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace %s%d" +msgstr "Wurkromte %s%d" + +#: ../libwnck/window-action-menu.c:1047 +msgid "_Move" +msgstr "Ferpleatse" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Resize" +msgstr "G_rutte feroarje" + +#: ../libwnck/window-action-menu.c:1063 +msgid "Always On _Top" +msgstr "Altyd boppe" + +#: ../libwnck/window-action-menu.c:1071 +msgid "_Always on Visible Workspace" +msgstr "_Altyd op sichtbere wurkromte" + +#: ../libwnck/window-action-menu.c:1076 +msgid "_Only on This Workspace" +msgstr "Allinich op dizze wurkr_omte" + +#: ../libwnck/window-action-menu.c:1083 +msgid "Move to Workspace _Left" +msgstr "Nei de wurkromte _loft ferpleatse" + +#: ../libwnck/window-action-menu.c:1089 +msgid "Move to Workspace R_ight" +msgstr "Nei de wurkromte _rjochts ferpleatse" + +#: ../libwnck/window-action-menu.c:1095 +msgid "Move to Workspace _Up" +msgstr "Nei de w_urkromte omheech ferpleatse" + +#: ../libwnck/window-action-menu.c:1101 +msgid "Move to Workspace _Down" +msgstr "Nei _de wurkromte omleech ferpleatse" + +#: ../libwnck/window-action-menu.c:1104 +msgid "Move to Another _Workspace" +msgstr "Nei in oare _wurkromte ferpleatse" + +#: ../libwnck/window-action-menu.c:1124 +msgid "_Close" +msgstr "Slute" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Nammeleas finster" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "X-finster-ID fan it te undersykjen of oan te passen finster" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "X-finster-ID fan de groeplieder fan in te ûndersykjen tapassing" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Klassehelpboarne fan de te ûndersykjen klassegroep" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "KLASSE" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÛMER fan de wurkromte om te ûndersykje of feroarje" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NÛMER" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÛMER fan it skerm om te ûndersykje of feroarje" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Alias fan --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"De finsters fan de tapassing/klassegroep/wurkromte/it skerm op in rige sette " +"(útfieropmaak: \"XID: finsternamme\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Wurkromtes fan it skerm op in rige sette (útfieropmaak: \"Nûmer: " +"wurkromtenamme\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "It tal wurkromten fan it skerm nei NÛMER feroarje" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "De yndieling fan de wurkromtes feroarje nei it brûken fan NÛMER rigels" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"De yndieling fan de wurkromtes feroarje nei it brûken fan NÛMER kolommen" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "It buroblêd sjen litte" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Stoppe mei it sjen litte fan it buroblêd" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "It eachweid fan de hjoeddeiske wurkromte nei X-koördinaat X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "It eachweid fan de hjoeddeiske wurkromte nei Y-koördinaat Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "It finster minimalisearje" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "It finster tebek minimalisearje" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "It finster maksimalisearje" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "It finster tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "It finster horizontaal maksimalisearje" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "It finster horizontaal tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "It finster fertikaal maksimalisearje" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "It finster fertikaal tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Begjin mei it ferpleatsen fan it finster mei it toetseboerd" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Begjin mei it feroarje fan de grutte fan it finster mei it toetseboerd" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "It finster aktyf meitsje" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "It finster slute" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "It finster folslein skerm meitsje" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "It finster folslein-skerm-modus dien meitsje litte" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "It finster altyd boppe meitsje" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "It finster net altyd boppe meitsje" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "It finster ûnder oare finsters meitsje" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "It finster net ûnder oare finsters meitsje" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "It finster skaadzje" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "It finster ûntskaadzje" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "It finster in fêste posysje yn it eachweid jaan" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "It finster net in fêste posysje yn it eachweid jaan" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "It finster net yn de wurkromteskeakeler ferskine litte" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "It finster yn de wurkromteskeakeler ferskine litte" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "It finster net yn taaklisten ferskine litte" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "It finster yn taaklisten ferskine litte" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "It finster op alle wurkromtes sichtber meitsje" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "It finster allinnich sichtber meitsje op dizze wurkromte" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "It finster nei wurkromte NÛMER ferpleatse (earste wurkromte is 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "De X-koördinaat fan it finster nei X feroarje" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "De Y-koördinaat fan it finster nei Y feroarje" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "De breedte fan it finster nei BREEDTE feroarje" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "BREEDTE" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "De hichte fan it finster nei HICHTE feroarje" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "HICHTE" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"De type fan it finster nei TYPE feroarje (jildige weardes: normal, desktop, " +"dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "De namme fan de wurkromte nei NAMME feroarje" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NAMME" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "De wurkromte aktyf meitsje" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Ûnjildige wearde \"%s\" foar --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: mei skerm %d soe omgean wurde, mar --%s war " +"brûkt\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: finsters of wurkromtes fan skerm %d soen op in " +"rige set wurde, mar --%s war brûkt\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: mei wurkromte %d soe omgean wurde, mar --%s war " +"brûkt\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: finsters fan wurkromte %d soen op in rige set " +"wurde, mar --%s war brûkt\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: mei in tapassing soe omgean wurde, mar --%s war " +"brûkt\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: finsters fan in tapassing soen op in rige set " +"wurde, mar --%s war brûkt\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: mei klassegroep %s soe omgean wurde, mar --%s war " +"brûkt\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: finsters fan klassegroep \"%s\" soen op in rige " +"set wurde, mar --%s war brûkt\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Stridige opsjes oanwêzich: mei in finster soe omgean wurde, mar --%s war " +"brûkt\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Stridige opsjes oanwêzich: --%s en --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Ûnjildich argumint \"%d\" foar --%s: it argumint moat folslein posityf wêze\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Ûnjildich argumint \"%d\" foar --%s: it argumint moat posityf wêze\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Stridige opsjes oanwêzich: --%s of --%s, en --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Ûnjildich argumint \"%s\" foar --%s, jildige wearden binne: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Kin de yndieling fan de wurkromtes op it skerm net feroarje: de yndieling " +"hat al in eigener\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Eachweid kin net ferpleatst wurde: de hjoeddeiske wurkromte befêt gjin " +"eachweid\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Eachweid kin net ferpleatst wurde: er is gjin hjoeddeiske wurkromte\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Aksje net tastean\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Finster kin net ferpleatst wurde nei wurkromte %d: de wurkromte bestiet net\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Skermnûmer: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometry (breedte, hichte): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Tal wurkromten: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Yndieling fan wurkromtes (rigen, kolommen, oriïntearring): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1461 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Finsterbehearder %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1446 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1453 +msgctxt "workspace" +msgid "none" +msgstr "gjin" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktive wurkromte: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "gjin" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktyf finster: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Dwaande mei sjen litte fan it buroblêd: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "wier" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "net wier" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Namme fan wurkromte: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Nûmer fan wurkromte: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1462 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Op skerm: %d (finsterbehearder: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posysje fan eachweid (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posysje yn yndieling (rige, kolom): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Lofter buorman: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Rjochter buorman: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Boppenbuorman: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Ûnderbuorman: %s\n" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1351 +#, c-format +msgid "Resource Class: %s\n" +msgstr "Helpboarneklasse: %s\n" + +#: ../libwnck/wnckprop.c:1353 +#, c-format +msgid "Group Name: %s\n" +msgstr "Groepnamme: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1359 ../libwnck/wnckprop.c:1383 +#: ../libwnck/wnckprop.c:1437 +msgid "set" +msgstr "stelt" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1393 ../libwnck/wnckprop.c:1423 +#: ../libwnck/wnckprop.c:1430 ../libwnck/wnckprop.c:1440 +#: ../libwnck/wnckprop.c:1505 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1524 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikoanen: %s\n" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Tal finsters: %d\n" + +#: ../libwnck/wnckprop.c:1378 ../libwnck/wnckprop.c:1424 +#, c-format +msgid "Name: %s\n" +msgstr "Namme: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1379 ../libwnck/wnckprop.c:1433 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ikoannamme: %s\n" + +#: ../libwnck/wnckprop.c:1394 ../libwnck/wnckprop.c:1517 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1401 +msgctxt "startupID" +msgid "none" +msgstr "gjin" + +#: ../libwnck/wnckprop.c:1402 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Opstart-ID: %s\n" + +#: ../libwnck/wnckprop.c:1450 +msgid "all workspaces" +msgstr "alle wurkromten" + +#: ../libwnck/wnckprop.c:1454 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Op wurkromte: %s\n" + +#: ../libwnck/wnckprop.c:1469 +msgid "normal window" +msgstr "normaal finster" + +#: ../libwnck/wnckprop.c:1472 +msgid "desktop" +msgstr "buroblêd" + +#: ../libwnck/wnckprop.c:1475 +msgid "dock or panel" +msgstr "dock of paniel" + +#: ../libwnck/wnckprop.c:1478 +msgid "dialog window" +msgstr "dialoochfinster" + +#: ../libwnck/wnckprop.c:1481 +msgid "tearoff toolbar" +msgstr "ôfskuor-arkbalk" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff menu" +msgstr "ôfskuor-menu" + +#: ../libwnck/wnckprop.c:1487 +msgid "utility window" +msgstr "arkfinster" + +#: ../libwnck/wnckprop.c:1490 +msgid "splash screen" +msgstr "opstartskerm" + +#: ../libwnck/wnckprop.c:1495 +#, c-format +msgid "Window Type: %s\n" +msgstr "Finstertype: %s\n" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometry (x, y, breedte, hichte): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1508 +#, c-format +msgid "Class Group: %s\n" +msgstr "Klassegroep: %s\n" + +#: ../libwnck/wnckprop.c:1510 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1525 +#, c-format +msgid "Session ID: %s\n" +msgstr "Sesje-ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1532 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Groeplieder: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Tydlik foar: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1553 ../libwnck/wnckprop.c:1601 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1557 ../libwnck/wnckprop.c:1603 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1563 +msgid "minimized" +msgstr "minimalisearre" + +#: ../libwnck/wnckprop.c:1564 +msgid "maximized" +msgstr "maksimalisearre" + +#: ../libwnck/wnckprop.c:1568 +msgid "maximized horizontally" +msgstr "horizontaal maksimalisearre" + +#: ../libwnck/wnckprop.c:1570 +msgid "maximized vertically" +msgstr "fertikaal maksimalisearre" + +#: ../libwnck/wnckprop.c:1572 +msgid "shaded" +msgstr "skaad" + +#: ../libwnck/wnckprop.c:1573 +msgid "pinned" +msgstr "fêstset" + +#: ../libwnck/wnckprop.c:1574 +msgid "sticky" +msgstr "kleve" + +#: ../libwnck/wnckprop.c:1575 +msgid "above" +msgstr "boppe" + +#: ../libwnck/wnckprop.c:1576 +msgid "below" +msgstr "ûnder" + +#: ../libwnck/wnckprop.c:1577 +msgid "fullscreen" +msgstr "folslein skerm" + +#: ../libwnck/wnckprop.c:1578 +msgid "needs attention" +msgstr "moat omtinken" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1583 +msgid "skip pager" +msgstr "wurktomeskeakeler oerslaan" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1586 +msgid "skip tasklist" +msgstr "taaklist oerslaan" + +#: ../libwnck/wnckprop.c:1588 +msgid "normal" +msgstr "normaal" + +#: ../libwnck/wnckprop.c:1589 +#, c-format +msgid "State: %s\n" +msgstr "Steat: %s\n" + +#: ../libwnck/wnckprop.c:1610 +msgid "move" +msgstr "ferpleatse" + +#: ../libwnck/wnckprop.c:1611 +msgid "resize" +msgstr "grutte feroarje" + +#: ../libwnck/wnckprop.c:1612 +msgid "shade" +msgstr "skaadzje" + +#: ../libwnck/wnckprop.c:1613 +msgid "unshade" +msgstr "ûntskaadzje" + +#: ../libwnck/wnckprop.c:1614 +msgid "stick" +msgstr "kleve" + +#: ../libwnck/wnckprop.c:1615 +msgid "unstick" +msgstr "net kleve" + +#: ../libwnck/wnckprop.c:1617 +msgid "maximize horizontally" +msgstr "horizontaal maksimalisearje" + +#: ../libwnck/wnckprop.c:1619 +msgid "unmaximize horizontally" +msgstr "horizontaal tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:1621 +msgid "maximize vertically" +msgstr "fertikaal maksimalisearje" + +#: ../libwnck/wnckprop.c:1623 +msgid "unmaximize vertically" +msgstr "fertikaal tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:1626 +msgid "change workspace" +msgstr "wurkromte feroarje" + +#: ../libwnck/wnckprop.c:1628 +msgid "pin" +msgstr "fêstsette" + +#: ../libwnck/wnckprop.c:1630 +msgid "unpin" +msgstr "net fêstsette" + +#: ../libwnck/wnckprop.c:1631 +msgid "minimize" +msgstr "minimalisearje" + +#: ../libwnck/wnckprop.c:1632 +msgid "unminimize" +msgstr "tebek minimalisearje" + +#: ../libwnck/wnckprop.c:1633 +msgid "maximize" +msgstr "maksimalisearje" + +#: ../libwnck/wnckprop.c:1634 +msgid "unmaximize" +msgstr "tebek maksimalisearje" + +#: ../libwnck/wnckprop.c:1636 +msgid "change fullscreen mode" +msgstr "folslein skerm feroarje" + +#: ../libwnck/wnckprop.c:1637 +msgid "close" +msgstr "slute" + +#: ../libwnck/wnckprop.c:1639 +msgid "make above" +msgstr "boppe meitsje" + +#: ../libwnck/wnckprop.c:1641 +msgid "unmake above" +msgstr "net boppe meitsje" + +#: ../libwnck/wnckprop.c:1643 +msgid "make below" +msgstr "ûnder meitsje" + +#: ../libwnck/wnckprop.c:1645 +msgid "unmake below" +msgstr "net ûnder meitsje" + +#: ../libwnck/wnckprop.c:1647 +msgid "no action possible" +msgstr "gjin aksje mooglik" + +#: ../libwnck/wnckprop.c:1648 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Mooglike aksjes: %s\n" + +#: ../libwnck/wnckprop.c:1829 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"De eigenskippen fan in skerm/wurkromte/finster ôfdrukke of feroarje, of er " +"mei omgean, neffens de EWMH-spesifikaasje.\n" +"Foar mear ynformaasje oer dizze spesifikaasje, sjoch:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1839 +msgid "Options to list windows or workspaces" +msgstr "Opsjes foar it op in rige sette fan finsters of wurkromtes" + +#: ../libwnck/wnckprop.c:1840 +msgid "Show options to list windows or workspaces" +msgstr "Opsjes foar it op in rige sette fan finsters of wurkromtes sjen litte" + +#: ../libwnck/wnckprop.c:1847 +msgid "Options to modify properties of a window" +msgstr "Opsjes foar it oanpasse fan finstereigenskippen" + +#: ../libwnck/wnckprop.c:1848 +msgid "Show options to modify properties of a window" +msgstr "Opsjes foar it oanpasse fan finstereigenskippen sjen litte" + +#: ../libwnck/wnckprop.c:1855 +msgid "Options to modify properties of a workspace" +msgstr "Opsjes foar it oanpasse fan wurkromte-eigenskippen" + +#: ../libwnck/wnckprop.c:1856 +msgid "Show options to modify properties of a workspace" +msgstr "Opsjes foar it oanpasse fan wurkromte-eigenskippen sjen litte" + +#: ../libwnck/wnckprop.c:1863 +msgid "Options to modify properties of a screen" +msgstr "Opsjes foar it oanpasse fan skermeigenskippen" + +#: ../libwnck/wnckprop.c:1864 +msgid "Show options to modify properties of a screen" +msgstr "Opsjes foar it oanpasse fan skermeigenskippen sjen litte" + +#: ../libwnck/wnckprop.c:1875 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Flater ûnder it ûntlede fan arguminten: %s\n" + +#: ../libwnck/wnckprop.c:1898 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Kin net omgean mei skerm %d: it skerm bestiet net\n" + +#: ../libwnck/wnckprop.c:1954 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Kin net omgean mei wurkromte %d: de wurkromte kin net fûn wurde\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1978 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Kin net omgean mei klassegroep \"%s\": de klassegroep kin net fûn wurde\n" + +#: ../libwnck/wnckprop.c:2001 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Kin net omgean mei tapassing hokker groeplieder XID %lu hat: de tapassing " +"kin net fûn wurde\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Kin net omgean mei finster mei XID %lu: it finster kin net fûn wurde\n" diff --git a/po/ga.gmo b/po/ga.gmo new file mode 100644 index 0000000..43f4fd5 Binary files /dev/null and b/po/ga.gmo differ diff --git a/po/ga.po b/po/ga.po new file mode 100644 index 0000000..3304a4d --- /dev/null +++ b/po/ga.po @@ -0,0 +1,1229 @@ +# Irish translations for libwnck package. +# Copyright (C) 2003-2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# Paul Duffy , 2003. +# Seán de Búrca , 2007, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.master\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-08-17 06:12-0600\n" +"PO-Revision-Date: 2009-08-17 06:22-0600\n" +"Last-Translator: Seán de Búrca \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=5; plural=n==1 ? 0 : (n%10==1 || n%10==2) ? 1 : (n%" +"10>=3 && n%10<= 6) ? 2 : ((n%10>=7 && n%10<=9) || n==10) ? 3 : 4;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Feidhmchlár gan teideal" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "Athraitheoir Spásanna Oibre" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "Feidhmchlár chun athrú idir spásanna oibre" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Cliceáil é seo chun athrú go spás oibre %s" + +#: ../libwnck/pager.c:1910 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Cliceáil chun tosú ar \"%s\" a tharraingt" + +#: ../libwnck/pager.c:1913 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Spás oibre reatha: \"%s\"" + +#: ../libwnck/pager.c:1918 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Cliceáil chun athrú go \"%s\"" + +#: ../libwnck/selector.c:1172 +msgid "No Windows Open" +msgstr "Gan Fhuinneog Oscailte" + +#: ../libwnck/selector.c:1225 +msgid "Window Selector" +msgstr "Roghnóir Fuinneog" + +#: ../libwnck/selector.c:1226 +msgid "Tool to switch between windows" +msgstr "Uirlis chun athrú idir fhuinneoga" + +#: ../libwnck/tasklist.c:729 +msgid "Window List" +msgstr "Liosta Fuinneog" + +#: ../libwnck/tasklist.c:730 +msgid "Tool to switch between visible windows" +msgstr "Uirlis chun athrú idir fhuinneoga infheicthe" + +#: ../libwnck/tasklist.c:3018 +msgid "Mi_nimize All" +msgstr "Íos_laghdaigh Gach Rud" + +#: ../libwnck/tasklist.c:3029 +msgid "Un_minimize All" +msgstr "Dí-íoslagh_daigh Gach Rud" + +#: ../libwnck/tasklist.c:3037 +msgid "Ma_ximize All" +msgstr "Uas_mhéadaigh Gach Rud" + +#: ../libwnck/tasklist.c:3048 +msgid "_Unmaximize All" +msgstr "_Dí-uasmhéadaigh Gach Rud" + +#: ../libwnck/tasklist.c:3060 +msgid "_Close All" +msgstr "_Dún Gach Rud" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "Úsáid N_RÓ ró" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "N_RÓ" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "Taispeáin spás oibre reatha amháin" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "Úsáid RTL mar threo réamhshocraithe" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/test-selector.c:13 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "" + +#: ../libwnck/window-action-menu.c:417 +msgid "Unmi_nimize" +msgstr "Dí-íoslag_hdaigh" + +#: ../libwnck/window-action-menu.c:424 +msgid "Mi_nimize" +msgstr "Íos_laghdaigh" + +#: ../libwnck/window-action-menu.c:432 +msgid "Unma_ximize" +msgstr "Dí-uas_mhéadaigh" + +#: ../libwnck/window-action-menu.c:439 +msgid "Ma_ximize" +msgstr "_Uasmhéadaigh" + +#: ../libwnck/window-action-menu.c:746 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Spás Oibre %d" + +#: ../libwnck/window-action-menu.c:755 ../libwnck/window-action-menu.c:902 +#, c-format +msgid "Workspace 1_0" +msgstr "Spás Oibre 1_0" + +#: ../libwnck/window-action-menu.c:757 ../libwnck/window-action-menu.c:904 +#, c-format +msgid "Workspace %s%d" +msgstr "Spás Oibre %s%d" + +#: ../libwnck/window-action-menu.c:1047 +msgid "_Move" +msgstr "_Bog" + +#: ../libwnck/window-action-menu.c:1054 +msgid "_Resize" +msgstr "_Athmhéadaigh" + +#: ../libwnck/window-action-menu.c:1063 +msgid "Always On _Top" +msgstr "Ar _Barr i gCónaí" + +#: ../libwnck/window-action-menu.c:1071 +msgid "_Always on Visible Workspace" +msgstr "Ar Spás Oibre Reatha i _gCónaí" + +#: ../libwnck/window-action-menu.c:1076 +msgid "_Only on This Workspace" +msgstr "Ar an Spás _Oibre Amháin" + +#: ../libwnck/window-action-menu.c:1083 +msgid "Move to Workspace _Left" +msgstr "Bog go Spás Oibre ar _Chlé" + +#: ../libwnck/window-action-menu.c:1089 +msgid "Move to Workspace R_ight" +msgstr "Bog go Spás Oibre ar _Dheis" + +#: ../libwnck/window-action-menu.c:1095 +msgid "Move to Workspace _Up" +msgstr "Bog go Spás Oibre O_s Cionn" + +#: ../libwnck/window-action-menu.c:1101 +msgid "Move to Workspace _Down" +msgstr "Bog go Spás Oibre _Faoi Bhun" + +#: ../libwnck/window-action-menu.c:1104 +msgid "Move to Another _Workspace" +msgstr "Bog go _Spás Oibre Eile" + +#: ../libwnck/window-action-menu.c:1124 +msgid "_Close" +msgstr "_Dún" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Fuinneog gan teideal" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "AICME" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "UIMHIR" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Ailias --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Taispeáin an deasc" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Stad taispeáint na deisce" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Íoslaghdaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Dí-íoslaghdaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Uasmhéadaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Dí-uasmhéadaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Uasmhéadaigh an fhuinneog go cothrománach" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Dí-uasmhéadaigh an fhuinneog go cothrománach" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Uasmhéadaigh an fhuinneog go hingearach" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Dí-uasmhéadaigh an fhuinneog go hingearach" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Gníomhachtaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Dún an fhuinneog" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Scáthaigh an fhuinneog" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Díscáthaigh an fhuinneog" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LEITHEAD" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "AIRDE" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "CINEÁL" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "AINM" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Gníomhachtaigh an spás oibre" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Luach neamhbhailí \"%s\" do --%s" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Uimhir Scáileáin: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Céimseata (leithead, airde): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Líon na Spásanna Oibre: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1460 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Bainisteoir Fuinneog: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1445 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1452 +msgctxt "workspace" +msgid "none" +msgstr "neamhní" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Spás Oibre Gníomhach: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "neamhní" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Fuinneog Ghníomhach: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Deasc á taispeáint: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "fíor" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "falsa" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Ainm Spás Oibre: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Uimhir Spás Oibre: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1461 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Ar Scáileán: %d (Bainisteoir Fuinneog: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: Resource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1350 +#, c-format +msgid "Resource Class: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1352 +#, c-format +msgid "Group Name: %s\n" +msgstr "Ainm Grúpa: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1358 ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1436 +msgid "set" +msgstr "socraithe" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1392 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1429 ../libwnck/wnckprop.c:1439 +#: ../libwnck/wnckprop.c:1504 ../libwnck/wnckprop.c:1515 +#: ../libwnck/wnckprop.c:1523 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +#, c-format +msgid "Icons: %s\n" +msgstr "Deilbhíní: %s\n" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1403 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Líon na bhFuinneog: %d\n" + +#: ../libwnck/wnckprop.c:1377 ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Name: %s\n" +msgstr "Ainm: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1378 ../libwnck/wnckprop.c:1432 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ainm Deilbhín: %s\n" + +#: ../libwnck/wnckprop.c:1393 ../libwnck/wnckprop.c:1516 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1400 +msgctxt "startupID" +msgid "none" +msgstr "neamhní" + +#: ../libwnck/wnckprop.c:1401 +#, c-format +msgid "Startup ID: %s\n" +msgstr "CA Tosaigh: %s\n" + +#: ../libwnck/wnckprop.c:1449 +msgid "all workspaces" +msgstr "gach spás oibre" + +#: ../libwnck/wnckprop.c:1453 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Ar Spás Oibre: %s\n" + +#: ../libwnck/wnckprop.c:1468 +msgid "normal window" +msgstr "gnáthfhuinneog" + +#: ../libwnck/wnckprop.c:1471 +msgid "desktop" +msgstr "deasc" + +#: ../libwnck/wnckprop.c:1474 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1477 +msgid "dialog window" +msgstr "fuinneog dhialóige" + +#: ../libwnck/wnckprop.c:1480 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1486 +msgid "utility window" +msgstr "fuinneog uirlise" + +#: ../libwnck/wnckprop.c:1489 +msgid "splash screen" +msgstr "splancscáileán" + +#: ../libwnck/wnckprop.c:1494 +#, c-format +msgid "Window Type: %s\n" +msgstr "Cineál Fuinneoige: %s\n" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1507 +#, c-format +msgid "Class Group: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "Session ID: %s\n" +msgstr "CA an tSeisiúin: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1552 ../libwnck/wnckprop.c:1600 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1556 ../libwnck/wnckprop.c:1602 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1562 +msgid "minimized" +msgstr "íoslaghdaithe" + +#: ../libwnck/wnckprop.c:1563 +msgid "maximized" +msgstr "uasmhéadaithe" + +#: ../libwnck/wnckprop.c:1567 +msgid "maximized horizontally" +msgstr "uasmhéadaithe go cothrománach" + +#: ../libwnck/wnckprop.c:1569 +msgid "maximized vertically" +msgstr "uasmhéadaithe go hingearach" + +#: ../libwnck/wnckprop.c:1571 +msgid "shaded" +msgstr "scáthaithe" + +#: ../libwnck/wnckprop.c:1572 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1573 +msgid "sticky" +msgstr "greamaitheach" + +#: ../libwnck/wnckprop.c:1574 +msgid "above" +msgstr "os cionn" + +#: ../libwnck/wnckprop.c:1575 +msgid "below" +msgstr "faoi bhun" + +#: ../libwnck/wnckprop.c:1576 +msgid "fullscreen" +msgstr "lánscáileán" + +#: ../libwnck/wnckprop.c:1577 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1582 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1585 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1587 +msgid "normal" +msgstr "gnách" + +#: ../libwnck/wnckprop.c:1588 +#, c-format +msgid "State: %s\n" +msgstr "Staid: %s\n" + +#: ../libwnck/wnckprop.c:1609 +msgid "move" +msgstr "bog" + +#: ../libwnck/wnckprop.c:1610 +msgid "resize" +msgstr "athmhéadaigh" + +#: ../libwnck/wnckprop.c:1611 +msgid "shade" +msgstr "scáthaigh" + +#: ../libwnck/wnckprop.c:1612 +msgid "unshade" +msgstr "díscáthaigh" + +#: ../libwnck/wnckprop.c:1613 +msgid "stick" +msgstr "greamaigh" + +#: ../libwnck/wnckprop.c:1614 +msgid "unstick" +msgstr "díghreamaigh" + +#: ../libwnck/wnckprop.c:1616 +msgid "maximize horizontally" +msgstr "uasmhéadaigh go cothrománach" + +#: ../libwnck/wnckprop.c:1618 +msgid "unmaximize horizontally" +msgstr "dí-uasmhéadaigh go cothrománach" + +#: ../libwnck/wnckprop.c:1620 +msgid "maximize vertically" +msgstr "uasmhéadaigh go hingearach" + +#: ../libwnck/wnckprop.c:1622 +msgid "unmaximize vertically" +msgstr "dí-uasmhéadaigh go hingearach" + +#: ../libwnck/wnckprop.c:1625 +msgid "change workspace" +msgstr "athraigh spás oibre" + +#: ../libwnck/wnckprop.c:1627 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1629 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1630 +msgid "minimize" +msgstr "íoslaghdaigh" + +#: ../libwnck/wnckprop.c:1631 +msgid "unminimize" +msgstr "dí-íoslaghdaigh" + +#: ../libwnck/wnckprop.c:1632 +msgid "maximize" +msgstr "uasmhéadaigh" + +#: ../libwnck/wnckprop.c:1633 +msgid "unmaximize" +msgstr "dí-uasmhéadaigh" + +#: ../libwnck/wnckprop.c:1635 +msgid "change fullscreen mode" +msgstr "athraigh mód lánscáileáin" + +#: ../libwnck/wnckprop.c:1636 +msgid "close" +msgstr "dún" + +#: ../libwnck/wnckprop.c:1638 +msgid "make above" +msgstr "déan os cionn" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmake above" +msgstr "dídhéan os cionn" + +#: ../libwnck/wnckprop.c:1642 +msgid "make below" +msgstr "déan faoi bhun" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmake below" +msgstr "dídhéan faoi bhun" + +#: ../libwnck/wnckprop.c:1646 +msgid "no action possible" +msgstr "" + +#: ../libwnck/wnckprop.c:1647 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1826 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1836 +msgid "Options to list windows or workspaces" +msgstr "Roghanna chun fuinneoga nó spásanna oibre a liostú" + +#: ../libwnck/wnckprop.c:1837 +msgid "Show options to list windows or workspaces" +msgstr "Taispeáin roghanna chun fuinneoga nó spásanna oibre a liostú" + +#: ../libwnck/wnckprop.c:1844 +msgid "Options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1845 +msgid "Show options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1872 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Earráid agus argóintí á bparsáil: %s\n" + +#: ../libwnck/wnckprop.c:1895 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1951 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1975 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1998 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2021 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" diff --git a/po/gd.gmo b/po/gd.gmo new file mode 100644 index 0000000..d11a7e9 Binary files /dev/null and b/po/gd.gmo differ diff --git a/po/gd.po b/po/gd.po new file mode 100644 index 0000000..866853b --- /dev/null +++ b/po/gd.po @@ -0,0 +1,1208 @@ +# Gaelic; Scottish translation for libwnck3 +# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013 +# This file is distributed under the same license as the libwnck3 package. +# FIRST AUTHOR , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck3\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-09-03 15:29+0000\n" +"PO-Revision-Date: 2013-09-17 14:37+0100\n" +"Last-Translator: GunChleoc \n" +"Language-Team: Gaelic; Scottish \n" +"Language: gd\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-09-15 06:21+0000\n" +"X-Generator: Launchpad (build 16761)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplacaid gun tiotal" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Suidsear nan rum-obrach" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Inneal airson leum a ghearradh eadar rumannan-obrach" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Briog an-seo gus leum a ghearradh dhan rum-obrach %s" + +#: ../libwnck/pager.c:2188 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Briog gus tòiseachadh air \"%s\" a shlaodadh" + +#: ../libwnck/pager.c:2191 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "An rum-obrach làithreach: \"%s\"" + +#: ../libwnck/pager.c:2196 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Briog gus leum a ghearradh gu \"%s\"" + +#: ../libwnck/selector.c:1184 +msgid "No Windows Open" +msgstr "Chan eil uinneag fosgailte" + +#: ../libwnck/selector.c:1240 +msgid "Window Selector" +msgstr "Roghnaichear nan uinneag" + +#: ../libwnck/selector.c:1241 +msgid "Tool to switch between windows" +msgstr "Inneal airson leum a ghearradh eadar uinneagan" + +#: ../libwnck/tasklist.c:594 +msgid "Window List" +msgstr "Liosta nan uinneag" + +#: ../libwnck/tasklist.c:595 +msgid "Tool to switch between visible windows" +msgstr "Inneal airson leum a ghearradh eadar uinneagan a chì thu" + +#: ../libwnck/tasklist.c:2952 +msgid "Mi_nimize All" +msgstr "_Fìor-lùghdaich na h-uile" + +#: ../libwnck/tasklist.c:2963 +msgid "Un_minimize All" +msgstr "Neo-fhìor-_lùghdaich na h-uile" + +#: ../libwnck/tasklist.c:2971 +msgid "Ma_ximize All" +msgstr "Làn-_mheudaich na h-uile" + +#: ../libwnck/tasklist.c:2982 +msgid "_Unmaximize All" +msgstr "Neo-làn-mhe_udaich na h-uile" + +#: ../libwnck/tasklist.c:2994 +msgid "_Close All" +msgstr "_Dùin na h-uile" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Neo-fhìor-_lùghdaich" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "_Fìor-lùghdaich" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Neo-làn-mhe_udaich" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Làn-_mheudaich" + +#: ../libwnck/window-action-menu.c:742 +#: ../libwnck/workspace.c:273 +#, c-format +msgid "Workspace %d" +msgstr "Rum-obrach %d" + +#: ../libwnck/window-action-menu.c:751 +#: ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Rum-obrach 1_0" + +#: ../libwnck/window-action-menu.c:753 +#: ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Rum-obrach %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Gluais" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Ath-mheudaich" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Air _uachdar an-còmhnaidh" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Air an rum-obrach a chì thu _an-còmhnaidh" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "Air an rum-obrach se_o a-mhàin" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Gluais gun rum-obrach air an taobh ch_lì" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Glua_is gun rum-obrach air an taobh deas" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Gluais gun r_um-obrach air a' bharr" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Gluais gun rum-o_brach air a' bhonn" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Gluais gu _rum-obrach eile" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Dùin" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:49 +msgid "Untitled window" +msgstr "Uinneag gun tiotal" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X window na h-uinneige fo sgrùdadh no ri atharrachadh" + +#: ../libwnck/wnckprop.c:139 +#: ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "An ID X window aig ceannard a' bhuidhinn aig na h-aplacaid fo sgrùdadh" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "An goireas clas aig a' bhuidheann clas fo sgrùdadh" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLAS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ÀIREAMH an ruim-obrach fo sgrùdadh no ri atharrachadh" + +#: ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 +#: ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "ÀIREAMH" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "ÀIREAMH na sgrìn fo sgrùdadh no ri atharrachadh" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Ainm-brèige aig --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "Dèan liosta dhe na h-uinneagan aig an aplacaid/a' bhuidheann clas/an rum-obrach/an sgrìn (fòrmat an às-chuir: \"XID: Ainm na h-uinneige\")" + +#: ../libwnck/wnckprop.c:166 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "Dèan liosta dhe na rumannan-obrach aig an sgrìn (fòrmat an às-chuir: \"Àireamh: Ainm an ruim-obrach\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Atharraich uiread nan rumannan-obrach aig an sgrìn gun ÀIRAMH" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Atharraich co-dhealbhachd rumannan-obrach na sgrìn gus an tèid ÀIREAMH ràghan a chleachdadh" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Atharraich co-dhealbhachd rumannan-obrach na sgrìn gus an tèid ÀIREAMH colbhan a chleachdadh" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Seall an deasg" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Sguir de shealltainn an deasg" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Gluais port-seallaidh an ruim-obrach làithrich gun co-chomharra-x X" + +#: ../libwnck/wnckprop.c:185 +#: ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Gluais port-seallaidh an ruim-obrach làithrich gun co-chomharra-y Y" + +#: ../libwnck/wnckprop.c:190 +#: ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Fìor-lùghdaich an uinneag" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Neo-fhìor-lùghdaich an uinneag" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Làn-mheudaich an uinneag" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Neo-làn-mheudaich an uinneag" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Làn-mheudaich an uinneag gu còmhnard" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Neo-làn-mheudaich an uinneag gu còmhnard" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Làn-mheudaich an uinneag gu h-inghearach" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Neo-làn-mheudaich an uinneag gu h-inghearach" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Tòisich air an uinneag a ghluasad leis a' mheur-chlàr" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Tòisich air an uinneag ath-mheudachadh leis a' mheur-chlàr" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Gnìomhaich an uinneag" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Dùin an uinneag" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Dèan an uinneag làn-sgrìn" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Thoir air an uinneag am modh làn-sgrìn fhàgail" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Cuir an uinneag air uachdar an-còmhnaidh" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Na cuir an uinneag air uachdar an-còmhnaidh" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Cuir an uinneag fo uinneagan eile" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Na cuir an uinneag fo uinneagan eile" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Duibhrich an uinneag" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Neo-dhuibhrich an uinneag" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Cuir ionad socraichte air an uinneag sa phort-seallaidh" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Na cuir ionad socraichte air an uinneag sa phort-seallaidh" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Na nochd an uinneag ann am pèidsearan" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Nochd an uinneag ann am pèidsearan" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Na nochd an uinneag air liostaichean nan saothair" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Nochd an uinneag air liostaichean nan saothair" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Seall an uinneag air na h-uile rum-obrach" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Na seall an uinneag ach air an rum-obrach làithreach" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Gluais an uinneag gun rum-obrach ÀIREAMH (Is 0 a' chiad rum-obrach)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Atharraich an co-chomharra-x aig an uinneag gu X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Atharraich an co-chomharra-y aig an uinneag gu Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Atharraich leud na h-uinneige gu LEUD" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LEUD" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Atharraich àirde na h-uinneige gu ÀIRDE" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ÀIRDE" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "Atharraich seòrsa na h-uinneige gu SEÒRSA (luachan dligheach: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "SEÒRSA" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Atharraich ainm an ruim-obrach gu AINM" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "AINM" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Gnìomhaich an rum-obrach" + +#: ../libwnck/wnckprop.c:386 +#: ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 +#: ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Luach neo-dhligheach \"%s\" airson --%s" + +#: ../libwnck/wnckprop.c:503 +#: ../libwnck/wnckprop.c:522 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir do dh'eadar-ghnìomh a bhith ann ris an sgrìn %d, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir liosta a dhèanamh dhe na h-uinneagan no rumannan-obrach aig an sgrìn %d, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:535 +#: ../libwnck/wnckprop.c:555 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir do dh'eadar-ghnìomh a bhith ann ris an rum-obrach %d, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir liosta a dhèanamh dhe na h-uinneagan aig an rum-obrach %d, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir do dh'eadar-ghnìomh a bhith ann ri aplacaid, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir liosta a dhèanamh dhe na h-uinneagan aig aplacaid, ach chaidh --%s a chleachdadh\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir do dh'eadar-ghnìomh a bhith ann ris a' bhuidheann clas \"%s\", ach chaidh --%s a chleachdadh\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir liosta a dhèanamh dhe na h-uinneagan aig a' bhuidheann clas \"%s\", ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:615 +#: ../libwnck/wnckprop.c:624 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "Tha còmhstri eadar dà roghainn ann: bu chòir do dh'eadar-ghnìomh a bhith ann ri uinneag, ach chaidh --%s a chleachdadh\n" + +#: ../libwnck/wnckprop.c:643 +#: ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Tha còmhstri eadar dà roghainn ann: --%s is --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "Argamaid neo-dhligheach \"%d\" airson --%s: feumaidh luach dearbh is nas motha na neoni a bhith aig an argamaid\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Argamaid neo-dhligheach \"%d\" airson --%s: feumaidh luach dearbh a bhith aig an argamaid\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Tha còmhstri eadar dà roghainn ann: --%s no --%s, agus --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argamaid mhì-dhligheach \"%s\" airson --%s, seo na luachan dligheach: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "Chan urrainn dhuinn co-dhealbhachd an ruim-obrach atharrachadh air an sgrìn: tha sealbhadair aig a' cho-dhealbhachd mar-thà\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "Chan urrainn dhuinn am port-seallaidh a ghluasad: chan eil port-seallaidh san rum-obrach làithreach\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Chan urrainn dhuinn am port-seallaidh a ghluasad: chan eil rum-obrach làithreach ann\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 +#: ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 +#: ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 +#: ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 +#: ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Chan eil an gnìomh ceadaichte\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Chan urrainn dhuinn an uinneag a ghluasad gun rum-obrach %d: chan eil an rum-obrach ann\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 +#: ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Àireamh na sgrìn: %d\n" + +#: ../libwnck/wnckprop.c:1191 +#: ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geomatraidh (leud, àirde): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Uiread de rumannan-obrach: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Co-dhealbhachd an ruim-obrach (ràghan, colbhan, comhair): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 +#: ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Manaidsear nan uinneag: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 +#: ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 +#: ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 +#: ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 +#: ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 +#: ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 +#: ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "chan eil gin" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Rum-obrach gnìomhach: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "chan eil gin" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Uinneag gnìomhach: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "A' sealltainn an deasg: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Ainm an ruim-obrach: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Àireamh an ruim-obrach: %d\n" + +#: ../libwnck/wnckprop.c:1269 +#: ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Air sgrìn: %d (Manaidsear nan uinneag: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Ionad a' phort-seallaidh (x,y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "An t-ionad sa cho-dhealbhachd (ràgh, colbh): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "An nàbaidh taobh clì: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "An nàbaidh taobh deas: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "An nàbaidh aig a' bharr: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "An nàbaidh aig a' bhonn: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 +#: ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID a' bhuidhinn clas: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Ainm a' bhuidhinn clas: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 +#: ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "air a shuidheachadh" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 +#: ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 +#: ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 +#: ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 +#: ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 +#: ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 +#: ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Ìomhaigheagan: %s\n" + +#: ../libwnck/wnckprop.c:1370 +#: ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "An uiread dhe dh'uinneagan: %d\n" + +#: ../libwnck/wnckprop.c:1382 +#: ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Ainm: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 +#: ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ainm na h-ìomhaigheige: %s\n" + +#: ../libwnck/wnckprop.c:1398 +#: ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "chan eil gin" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID tòiseachaidh: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "Na h-uile rum-obrach" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Air an rum-obrach: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "uinneag àbhaisteach" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "an deasg" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "doca no panail" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "uinneag còmhraidh" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "bàr-inneal tearoff" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "clàr-taice tearoff" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "uinneag ghoireasan" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "sgrìn splash" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Seòrsa na h-uinneige:%s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geomatraidh (x, y, leud, àirde): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Ionstans a' chlas: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID an t-seisein: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Dreuchd: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Ceannard a' bhuidhinn: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "'Na uinneag shiubhlach aig: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 +#: ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 +#: ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "fìor-lùghdaichte" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "làn-mheudaichte" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "làn-mheudaichte gu còmhnard" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "làn-mheudaichte gu h-inghearach" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "sgàilichte" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "prìnichte" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "steigeach" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "os a chionn" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "foidhe" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "làn-sgrìn" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "feumach air d' aire" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "Gearr leum thairis air a' phèidsear" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "Gearr leum thairis air liosta nan saothair" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "àbhaisteach" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Staid: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "gluais" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "ath-mheudaich" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "sgàilich" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "neo-sgàilich" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "steig" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "neo-steig" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "làn-mheudaich gu còmhnard" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "neo-làn-mheudaich gu còmhnard" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "làn-mheudaich gu h-inghearach" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "neo-làn-mheudaich gu h-inghearach" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "atharraich an rum-obrach" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "prìnich" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "neo-phrìnich" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "fìor-lùghdaich" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "neo-fhìor-lùghdaich" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "làn-mheudaich" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "neo-làn-mheudaich" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "atharraich am modh làn-sgrìn" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "dùin" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "cuir os cionn" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "na cuir os cionn tuilleadh" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "cuir foidhe" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "na cuir foidhe tuilleadh" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "cha ghabh gnìomh a dhèanamh" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Gnìomhan a ghabhas dèanamh: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Clò-bhuail no atharraich na roghainnean aig sgrìn/rum-obrach/uinneag, no dèan eadar-ghnìomh leis, a' leantainn sònrachas EWMH.\n" +"Airson fiosrachaidh mun t-sònrachas seo, tadhail air:\n" +"\t http://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Roghainnean airson liosta de dh'uinneagan no rummanan-obrach a dhèanamh" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Seall na roghainnean gus liosta de dh'uinneagan no rummanan-obrach a dhèanamh" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Roghainnean airson roghainnean uinneige atharrachadh" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Seall roghainnean gus na roghainnean aig uinneag atharrachadh" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Roghainnean airson roghainnean ruim-obrach atharrachadh" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "Seall roghainnean gus na roghainnean aig rum-obrach atharrachadh" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Roghainnean airson roghainnean sgrìn atharrachadh" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Seall roghainnean gus na roghainnean aig sgrìn atharrachadh" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Mearachd le parsadh nan argamaidean: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Chan urrainn dhuinn eadar-ghnìomh a dhèanamh leis an sgrìn %d: chan eil an sgrìn ann\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Chan urrainn dhuinn eadar-ghnìomh a dhèanamh leis an rum-obrach%d: chan eil an rum-obrach ann\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Chan urrainn dhuinn eadar-ghnìomh a dhèanamh leis a' bhuidheann clas \"%s\": cha deach am buidheann clas a lorg\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "Chan urrainn dhuinn eadar-ghnìomh a dhèanamh leis an aplacaid aig a bheil an ceannard buidhinn le XID %lu: cha deach an aplacaid a lorg\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Chan urrainn dhuinn eadar-ghnìomh a dhèanamh leis an uinneag leis an XID %lu: cha deach an uinneag a lorg\n" + diff --git a/po/gl.gmo b/po/gl.gmo new file mode 100644 index 0000000..8d02bf4 Binary files /dev/null and b/po/gl.gmo differ diff --git a/po/gl.po b/po/gl.po new file mode 100644 index 0000000..1a42f8f --- /dev/null +++ b/po/gl.po @@ -0,0 +1,1296 @@ +# translation of libwnck-master-po-gl.po to Galician +# Galician translation of libwnck. +# Copyright (C) 2002 Jesús Bravo Álvarez. +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en http://www.trasno.net +# First Version: 2002-06-04 10:56+0200 +# Jesús Bravo Álvarez , 2002. +# Ignacio Casal Quinteiro , 2005, 2006. +# Mancomún - Centro de Referencia e Servizos de Software Libre , 2009. +# Suso Baleato , 2009. +# Antón Méixome , 2009. +# Fran Diéguez , 2010, 2011. +# Fran Dieguez , 2013. +msgid "" +msgstr "" +"Project-Id-Version: libwnck-master-po-gl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-28 01:04+0200\n" +"PO-Revision-Date: 2013-08-28 01:04+0200\n" +"Last-Translator: Fran Dieguez \n" +"Language-Team: gnome-l10n-gl@gnome.org\n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Virtaal 0.7.1\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplicativo sen título" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Selector de espazo de traballo" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Ferramenta para intercambiar entre os espazos de traballo" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Prema isto para cambiar ao espazo de traballo %s" + +#: ../libwnck/pager.c:2188 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Prema para comezar a arrastrar «%s»" + +#: ../libwnck/pager.c:2191 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Espazo de traballo actual: «%s»" + +#: ../libwnck/pager.c:2196 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Prema para cambiar a «%s»" + +#: ../libwnck/selector.c:1184 +msgid "No Windows Open" +msgstr "Non hai xanelas abertas" + +#: ../libwnck/selector.c:1240 +msgid "Window Selector" +msgstr "Selector de xanelas" + +#: ../libwnck/selector.c:1241 +msgid "Tool to switch between windows" +msgstr "Ferramenta para intercambiar entre xanelas" + +#: ../libwnck/tasklist.c:594 +msgid "Window List" +msgstr "Lista de xanelas" + +#: ../libwnck/tasklist.c:595 +msgid "Tool to switch between visible windows" +msgstr "Ferramenta para intercambiar entre xanelas visíbeis" + +#: ../libwnck/tasklist.c:2952 +msgid "Mi_nimize All" +msgstr "Mi_nimizar todo" + +#: ../libwnck/tasklist.c:2963 +msgid "Un_minimize All" +msgstr "_Restaurar todo" + +#: ../libwnck/tasklist.c:2971 +msgid "Ma_ximize All" +msgstr "Ma_ximizar todo" + +#: ../libwnck/tasklist.c:2982 +msgid "_Unmaximize All" +msgstr "Resta_urar todo" + +#: ../libwnck/tasklist.c:2994 +msgid "_Close All" +msgstr "_Pechar todos" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Res_taurar" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimizar" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Res_taurar" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximizar" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:273 +#, c-format +msgid "Workspace %d" +msgstr "Espazo de traballo %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Espazo de traballo 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Espazo de traballo %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Mover" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Redimensionar" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Sempre _enriba das demais xanelas" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Se_mpre no espazo de traballo visíbel" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Só neste espazo de traballo" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Mover ao espazo de traballo da _esquerda" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Mover ao espazo de traballo da _dereita" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Mover ao espazo de traballo de a_rriba" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Mover ao espazo de traballo de a_baixo" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Mover a outro espa_zo de traballo" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Pechar" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:49 +msgid "Untitled window" +msgstr "Xanela sen título" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID de xanela X da xanela que se vai examinar ou modificar" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ID de xanela X do grupo líder dun aplicativo para examinar" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Recurso de clase do grupo de clase que se vai examinar" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASE" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NÚMERO do espazo de traballo que se vai examinar ou modificar" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NÚMERO" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "NÚMERO da pantalla que se vai examinar ou modificar" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alias de --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Lista de xanelas de aplicativos, grupo de clase, espazo de traballo ou " +"pantalla (formato de saída: \"XID: nome da xanela\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Lista de espazos de traballo da pantalla (formato de saída: \"Número: nome " +"do espazo de traballo\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Cambiar o número de espazos de traballo da pantalla a NÚMERO" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Cambiar a disposición do espazo de traballo da pantalla para usar NÚMERO " +"filas" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Cambiar a disposición do espazo de traballo da pantalla para usar NÚMERO " +"columnas" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Mostrar o escritorio" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Deixar de mostrar o escritorio" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Mover a área de visualización do espazo de traballo actual á X coordenada X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Mover a área de visualización do espazo de traballo actual á Y coordenada Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimizar a xanela" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Restaurar a xanela" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maximizar a xanela" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Restaurar a xanela" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maximizar a xanela horizontalmente" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Restaurar a xanela horizontalmente" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maximizar a xanela verticalmente" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Restaurar a xanela verticalmente" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Comezar a mover a xanela a través do teclado" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Comezar a redimensionar a xanela a través do teclado" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Activar a xanela" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Pechar a xanela" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Pór a xanela en pantalla completa" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Quitar a xanela do modo de pantalla completa" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Pór a xanela sempre na parte superior" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Non pór sempre a xanela na parte superior" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Pór a xanela por debaixo doutras xanelas" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Pór a xanela de forma que non estea por debaixo doutras" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Ensombrecer a xanela" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Desensombrecer a xanela" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Facer que a xanela teña unha posición fixa na área de visualización" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" +"Facer que a xanela non teña unha posición fixa na área de visualización" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Facer que a xanela non apareza nos paxinadores" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Facer que a xanela apareza nos paxinadores" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Facer que a xanela non apareza na lista de tarefas" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Facer que a xanela apareza na lista de tarefas" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Facer que a xanela sexa visíbel en todos os espazos de traballo" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Facer que a xanela só sexa visíbel no espazo de traballo actual" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Mover a xanela ao espazo de traballo NÚMERO (o primeiro é o 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Cambiar a coordenada X da xanela a X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Cambiar a coordenada Y da xanela a Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Cambiar a largura da xanela a LARGURA" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LARGURA" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Cambiar a altura da xanela a ALTURA" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ALTURA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Cambiar o tipo da xanela a TIPO (valores válidos: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TIPO" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Cambiar o nome do espazo de traballo a NOME" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NOME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Activar o espazo de traballo" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valor «%s» non válido para --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: debería interactuarse coa pantalla %d, mais " +"usouse --%s\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: as xanelas ou espazos de traballo da " +"pantalla %d deberían estar listados, mais usouse --%s\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: debería interactuarse co espazo de traballo " +"%d mais usouse --%s\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: as xanelas do espazo de traballo %d " +"deberían estar listadas, mais usouse --%s\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: debería interactuarse cun aplicativo, mais " +"usouse --%s\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: as xanelas dun aplicativo deberían estar " +"listadas, mais usouse --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: debería interactuarse co grupo de clase " +"«%s», mais usouse --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: as xanelas do grupo de clase «%s» deberían " +"estar listadas, mais usouse --%s\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Preséntanse opcións en conflito: debería interactuarse cunha xanela, mais " +"usouse --%s\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Presentáronse opcións en conflito: --%s e --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"O argumento \"%d\" non é válido para --%s: o argumento ten que ser " +"estritamente positivo\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"O argumento \"%d\" non é válido para --%s: o argumento ten que ser positivo\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Preséntanse opcións en conflito: --%s ou --%s, e --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "O argumento «%s» non é válido para --%s, os valores válidos son: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Non é posíbel cambiar a disposición do espazo de traballo na pantalla: a " +"disposición xa está asignada\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Non é posíbel mover a área de visualización: o espazo de traballo actual non " +"contén unha área de visualización\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Non é posíbel mover a área de visualización: non hai ningún espazo de " +"traballo\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "A acción non está permitida\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Non é posíbel mover a xanela ao espazo de trabalo %d: o espazo de traballo " +"non existe\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Número de pantalla: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Xeometría (largura, altura): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Número de espazos de traballo: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Disposición do espazo de traballo (filas, columnas, orientación): %d, %d, " +"%s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Xestor de xanelas: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d («%s»)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "ningún" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Espazo de traballo activo: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "«%s»" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "ningunha" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Xanela activa: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Mostrando o escritorio: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "verdadeiro" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "falso" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nome de espazo de traballo: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Número de espazo de traballo: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Na pantalla: %d (xestor de xanelas: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posición da área de visualización (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posición na disposición (fila, columna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Veciño esquerdo: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Veciño dereito: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Veciño superior: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Veciño inferior: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Id do grupo de clase: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nome do grupo de clase: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "definir" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Iconas: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Número de xanelas: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Nome: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nome da icona: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "ningún" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID de inicio: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "todos os espazos de traballo" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "No espazo de traballlo: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "xanela normal" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "escritorio" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "ancoraxe ou panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "xanela de diálogo" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "barra de ferramentas desprazábel" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "menú desprazábel" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "xanela de utilidade" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "pantalla de presentación" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tipo de xanela: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Xeometría (x, y, largura, altura): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instancia da clase: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID de sesión: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Rol %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Líder do grupo: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transitoria para: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimizada" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maximizada" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "maximizada horizontalmente" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "maximizada verticalmente" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "ensombrecida" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "colocada" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "persistente" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "enriba" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "debaixo" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "pantalla completa" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "precisa atención" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "saltar o paxinador" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "saltar a lista de tarefas" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Estado: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "mover" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "redimensionar" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "ensombrecer" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "desensombrecer" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "fixar" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "quitar" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maximizar horizontalmente" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "restaurar horizontalmente" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maximizar verticalmente" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "restaurar verticalmente" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "cambiar de espazo de traballo" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "colocar" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "quitar" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimizar" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "restaurar" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maximizar" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "restaurar" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "cambiar ao modo de patalla completa" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "pechar" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "pór enriba" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "quitar de enriba" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "pór debaixo" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "quitar de debaixo" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "non hai ningunha acción posíbel" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Accións posíbeis: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Imprimir ou modificar as propiedades dunha pantalla, espazo de traballo ou " +"dunha xanela; ou ben interactuar con eles seguindo a especificación EWMH.\n" +"Para máis información sobre esta especificación vexa:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Opcións para listar xanelas ou espazos de traballo" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Mostrar as opcións para listar xanelas ou espazos de traballo" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Opcións para modificar as propiedades dunha xanela" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Mostrar as opcións para modificar as propiedades dunha xanela" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Opcións para modificar as propiedades dun espazo de traballo" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "" +"Mostrar as opcións para modificar as propiedades dun espazo de traballo" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Opcións para modificar as propiedades dunha pantalla" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Mostrar as opcións para modificar as propiedades dunha pantalla" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Produciuse un erro ao analizar os argumentos: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Non foi posíbel interactual coa pantalla %d: a pantalla non existe\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Non é posíbel interactuar co espazo de traballo %d: non é posíbel atopar o " +"espazo de traballo\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Non é posíbel interactuar co grupo de clase «%s»: non é posíbel atopar o " +"grupo de clase\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Non é posíbel interactuar co aplicativo se este ten o seu líder de grupo con " +"XID %lu: non é posíbel atopar o aplicativo\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Non é posíbel interactuar coa xanela con XID %lu: non é posíbel atopar a " +"xanela\n" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Clase de recurso: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Nome do grupo: %s\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Usar as filas N_ROWS" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Mostrar só o espazo de traballo actual" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Usar RTL como dirección predefinido" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Mostrar os nomes do espazo de traballo en vez dos seus contidos" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Usar unha orientación vertical" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Non mostrar a xanela na lista de tarefas" + +#~ msgid "Always group windows" +#~ msgstr "Agrupar sempre as xanelas" + +#~ msgid "Never group windows" +#~ msgstr "Non agrupar nunca as xanelas" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Mostrar as xanelas de todos os espazos de traballo" + +#~ msgid "Enable Transparency" +#~ msgstr "Activar transparencia" diff --git a/po/gu.gmo b/po/gu.gmo new file mode 100644 index 0000000..746a9c8 Binary files /dev/null and b/po/gu.gmo differ diff --git a/po/gu.po b/po/gu.po new file mode 100644 index 0000000..c45fe39 --- /dev/null +++ b/po/gu.po @@ -0,0 +1,1265 @@ +# translation of libwnck.HEAD.gu.po to Gujarati +# Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# MagNet , 2004. +# Ankit Patel , 2005, 2007, 2008, 2009. +# Ankit Patel , 2006, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD.gu\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug." +"cgi?product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-03-22 14:38+0530\n" +"Last-Translator: \n" +"Language-Team: American English \n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "શીર્ષકવીહિન કાર્યક્રમ" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "કામ કરવાની જગ્યા બદલનાર" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "કામ કરવાની જગ્યા બદલવાનું સાધન" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "કામ કરવાની જગ્યા %s માં બદલવા માટે અહિં ક્લિક કરો" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" ખેંચવાનું શરૂ કરવા માટે ક્લિક કરો" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "વર્તમાન કાર્યસ્થળ: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\" માં બદલવા માટે ક્લિક કરો" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "કોઈ વિન્ડો ખૂલેલી નથી" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "વિન્ડો પસંદ કરનાર" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "વિન્ડો વચ્ચે ફેરબદલી કરવાનું સાધન" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "વિન્ડો યાદી" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "દેખીતી વિન્ડો વચ્ચે બદલવાનું સાધન" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "બધું ન્યૂનતમ કરો (_n)" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "બધું ન્યૂનતમમાંથી પાછુ લાવો (_m)" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "બધું મહત્તમ કરો (_x)" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "બધું મહત્તમમાંથી પાછુ લાવો (_U)" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "બધું બંધ કરો (_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "ન્યૂનતમમાંથી પાછુ લાવો (_n)" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "ન્યૂનતમ કરો (_n)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "મહત્તમમાંથી પાછુ લાવો (_x)" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "મહત્તમ કરો (_x)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "કામ કરવાની જગ્યા %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "કામ કરવાની જગ્યા ૧_૦" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "કામ કરવાની જગ્યા %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "ખસેડો (_M)" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "માપ બદલો (_R)" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "હંમેશા ટોચ પર (_T)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "હંમેશા દેખીતી કામ કરવાની જગ્યા પર (_A)" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "માત્ર આ કામ કરવાની જગ્યા પર (_O)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "ડાબી કામ કરવાની જગ્યામાં ખસો (_L)" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "જમણી કામ કરવાની જગ્યામાં ખસો (_i)" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "ઉપરની કામ કરવાની જગ્યામાં ખસો (_U)" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "નીચેની કામ કરવાની જગ્યામાં ખસો (_D)" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "બીજી કામ કરવાની જગ્યામાં ખસો (_W)" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "બંધ કરો (_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "શીર્ષકવીહિન વિન્ડો" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "પરીક્ષણ કરવા માટે અથવા સુધારવા માટે વિન્ડોનું X વિન્ડો ID" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "કાર્યક્રમનું પરીક્ષણ કરવા માટે તેના દલનેતાનું X વિન્ડો ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "પરીક્ષણ કરવા માટે વર્ગ જૂથનું વર્ગ સ્રોત" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "વર્ગ" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "પરીક્ષણ કરવા માટે કે સુધારવા માટે કાર્યસ્થળની સંખ્યા" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "નંબર" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "પરીક્ષણ કરવા માટે કે સુધારવા માટે સ્ક્રીનની સંખ્યા" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window નું ઉપનામ" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"કાર્યક્રમ/વર્ગ જૂથ/કાર્યસ્થળ/સ્ક્રીનની વિન્ડોની યાદી આપો (આઉટપુટ બંધારણ: \"XID: વિન્ડો " +"નામ\")" + +#: ../libwnck/wnckprop.c:166 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "સ્ક્રીનના કાર્યસ્થળોની યાદી આપો (આઉટપુટ બંધારણ: \"નંબર: કાર્યસ્થળ નામ\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "સ્ક્રીનના કાર્યસ્થળોનો નંબર NUMBER માં બદલો" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "સ્ક્રીનનું કાર્યસ્થળ લેઆઉટ NUMBER હરોળો વાપરવા માટે બદલો" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "સ્ક્રીનનું કાર્યસ્થળ લેઆઉટ NUMBER સ્તંભો વાપરવા માટે બદલો" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "ડેસ્કટોપ બતાવો" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "ડેસ્કટોપ બતાવવાનું અટકાવો" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "વર્તમાન કાર્યસ્થળનો વ્યુપોર્ટ X અક્ષ X આગળ ખસેડો" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "વર્તમાન કાર્યસ્થળનો વ્યુપોર્ટ Y અક્ષ Y માં ખસેડો" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "વિન્ડો ન્યૂનતમ બનાવો" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "વિન્ડો ન્યૂનતમમાંથી પાછી લાવો" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "વિન્ડો મહત્તમ બનાવો" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "વિન્ડો મહત્તમમાંથી પાછી લાવો" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "વિન્ડોને આડી રીતે મહત્તમ બનાવો" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "વિન્ડોને આડી રીતે મહત્તમમાંથી પાછી લાવો" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "વિન્ડોને ઊભી રીતે મહત્તમ બનાવો" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "વિન્ડોને ઊભી રીતે મહત્તમમાંથી પાછી લાવો" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "વિન્ડો કીબોર્ડ મારફતે ખસેડવાનું શરૂ કરો" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "વિન્ડોને કીબોર્ડ મારફતે માપ બદલવાનું શરૂ કરો" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "વિન્ડો સક્રિય કરો" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "વિન્ડો બંધ કરો" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "વિન્ડો સંપૂર્ણસ્ક્રીન બનાવો" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "વિન્ડો સંપૂર્ણસ્ક્રીન સ્થિતિમાંથી બંધ કરો" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "વિન્ડોને હંમેશા ટોચ પર રહે એમ રાખો" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "વિન્ડોને હંમેશા ટોચ પર રહે નહિં એમ રાખો" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "વિન્ડોને અન્ય વિન્ડોની નીચે રાખો" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "વિન્ડોને અન્ય વિન્ડોની નીચે નહિં રહે એમ રાખો" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "વિન્ડોને છાયા આપો" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "વિન્ડોની છાયા દૂર કરો" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "વિન્ડોને વ્યુપોર્ટમાં ચોક્કસ સ્થાન હોય એમ બનાવો" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "વિન્ડોને વ્યુપોર્ટમાં ચોક્કસ સ્થાન નહિં હોય એમ બનાવો" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "વિન્ડોને પેજરોમાં નહિં દેખાય એમ બનાવો" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "વિન્ડોને પેજરોમાં દેખાય એમ બનાવો" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "વિન્ડોને ક્રિયાયાદીઓમાં નહિં દેખાય એમ બનાવો" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "વિન્ડોને ક્રિયાયાદીઓમાં દેખાય એમ બનાવો" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "વિન્ડોને બધા કાર્યસ્થળો પર દેખાય એમ બનાવો" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "વિન્ડોને માત્ર વર્તમાન કાર્યસ્થળ પર જ દેખાય એમ બનાવો" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "વિન્ડોને કાર્યસ્થળ NUMBER પર ખસેડો (પ્રથમ કાર્યસ્થળ ૦ છે)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "વિન્ડોનો X અક્ષ X માં બદલો" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "વિન્ડોનો Y અક્ષ Y માં બદલો" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "વિન્ડોની પહોળાઈ WIDTH માં બદલો" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "વિન્ડોની ઊંચાઈ HEIGHT માં બદલો" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"વિન્ડોનો પ્રકાર TYPE માં બદલો (માન્ય કિંમતો: સામાન્ય, ડેસ્કટોપ, ડોક, સંવાદ, સાધનપટ્ટી, " +"મેનુ, ઉપયોગીતા, સ્પ્લેશ)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "કાર્યસ્થળનું નામ NAME માં બદલો" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "કાર્યસ્થળ સક્રિય કરો" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "અયોગ્ય કિંમત \"%s\" એ --%s માટે" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: સ્ક્રીન %d આની સાથે સંપર્કમાં આવવી જોઈએ, પરંતુ --%s વપરાઈ " +"ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: સ્ક્રીન %d ની વિન્ડો અથવા કાર્યસ્થળોની યાદી થવી જોઈએ, " +"પરંતુ --%s વપરાઈ ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: કાર્યસ્થળ %d આની સાથે સંપર્કમાં આવવું જોઈએ, પરંતુ --%s વપરાઈ " +"ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: કાર્યસ્થળ %d ની વિન્ડોની યાદી થવી જોઈએ, પરંતુ --%s " +"વપરાઈ ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: કાર્યક્રમ આની સાથે સંપર્કમાં આવવો જોઈએ, પરંતુ %s વપરાઈ ગયેલ " +"છે\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: કાર્યક્રમની વિન્ડોની યાદી થવી જોઈએ, પરંતુ --%s વપરાઈ " +"ગયેલ છે\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: વર્ગ જૂથ \"%s\" આની સાથે સંપર્કમાં આવવું જોઈએ, પરંતુ --%s " +"વપરાઈ ગયેલ છે\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: જૂથ \"%s\" વર્ગની વિન્ડોની યાદી થવી જોઈએ, પરંતુ --%s " +"વપરાઈ ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"તકરાર કરતા વિકલ્પો હાજર છે: વિન્ડો આની સાથે સંપર્કમાં આવવી જોઈએ, પરંતુ --%s વપરાઈ " +"ગયેલ છે\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "તકરાર કરતા વિકલ્પો હાજર છે: --%s અને --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "અયોગ્ય દલીલ \"%d\" એ --%s માટે: દલીલ સખત રીતે સારી હોવી જ જોઈએ\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "અયોગ્ય દલીલ \"%d\" એ --%s માટે: દલીલ સારી હોવી જ જોઈએ\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "તકરાર કરતા વિકલ્પો હાજર છે: --%s અથવા --%s, અને --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "અયોગ્ય દલીલ \"%s\" એ --%s માટે, માન્ય કિંમતો છે: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "સ્ક્રીન પર કાર્યસ્થળ લેઆઉટ બદલી શકતા નથી: લેઆઉટ પહેલાથી જ માલિકીનું છે\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "વ્યુપોર્ટ ખસેડી શકતા નથી: વર્તમાન કાર્યસ્થળ વ્યુપોર્ટ સમાવતું નથી\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "વ્યુપોર્ટ ખસેડી શકાતું નથી: ત્યાં કોઈ વર્તમાન કાર્યસ્થળ નથી\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "ક્રિયા માન્ય નથી\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "વિન્ડો કાર્યસ્થળ %d માં ખસેડી શકતા નથી: કાર્યસ્થળ અસ્તિત્વમાં નથી\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "સ્ક્રીન નંબર: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ભૂમિતી (પહોળાઈ, ઊંચાઈ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "કાર્યસ્થળોની સંખ્યા: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "કાર્યસ્થળ લેઆઉટ (હરોળો, સ્તંભો, દિશા): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "વિન્ડો વ્યવસ્થાપક: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "કંઈ નહિં" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "સક્રિય કાર્યસ્થળ: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "કંઈ નહિં" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "સક્રિય વિન્ડો: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ડેસ્કટોપ બતાવી રહ્યા છીએ: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "ખરું" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "ખોટું" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "કાર્યસ્થળ નામ: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "કાર્યસ્થળ નંબર: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "સ્ક્રીન પર: %d (વિન્ડો વ્યવસ્થાપક: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "વ્યુપોર્ટ સ્થાન (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "લેઆઉટમાં સ્થાન (હરોળ, સ્તંભ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "ડાબો પડોશી: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "જમણો પડોશી: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "ટોચનો પડોશી: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "તળિયેનો પડોશી: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "વર્ગ જૂથ ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "વર્ગ જૂથ નામ: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "સુયોજીત" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "ચિહ્નો: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "વિન્ડોની સંખ્યા: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "નામ: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "ચિહ્ન નામ: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "કંઈ નહિં" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "શરૂઆત ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "બધા કાર્યસ્થળો" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "કાર્યસ્થળ પર: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "સામાન્ય વિન્ડો" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "ડેસ્કટોપ" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "ડોક અથવા પેનલ" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "સંવાદ વિન્ડો" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "સાધનપટ્ટી કાપો" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "મેનુ કાપો" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "ઉપયોગીતા વિન્ડો" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "ઝબૂક સ્ક્રીન" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "વિન્ડો પ્રકાર: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ભૂમિતિ (x, y, પહોળાઈ, ઊંચાઈ): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "વર્ગ નમૂનો: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "સત્ર ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "ભૂમિકા: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "જૂથ નેતા: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "માટે પરિવહન: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "ન્યૂનતમ કરાયેલ" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "મહત્તમ કરાયેલ" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "આડી રીતે મહત્તમ કરાયેલ" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "ઊભી રીતે મહત્તમ કરાયેલ" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "છાયાવાળું" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "પીન થયેલ" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "ચોંટેલ" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "ઉપર" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "નીચે" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "સંપૂર્ણસ્ક્રીન" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "ધ્યાન જરૂરી" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "પેજર અવગણો" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "ક્રિયાયાદી અવગણો" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "સામાન્ય" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "સ્થિતિ: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "ખસેડો" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "માપ બદલો" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "છાયા" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "છાયા દૂર કરો" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "ચોંટાડો" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "છોડો" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "આડી રીતે મહત્તમ કરો" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "આડી રીતે મહત્તમ દૂર કરો" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "ઊભી રીતે મહત્તમ કરો" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "ઊભી રીતે મહત્તમ દૂર કરો" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "કાર્યસ્થળ બદલો" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "પીન" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "પીન દૂર કરો" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "ન્યૂનતમ કરો" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "ન્યૂનતમમાંથી પાછુ લાવો" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "મહત્તમ કરો" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "મહત્તમમાંથી પાછુ લાવો" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "સંપૂર્ણસ્ક્રીન સ્થિતિ બદલો" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "બંધ કરો" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "ઉપર બનાવો" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "ઉપર નહિં બનાવો" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "નીચે બનાવો" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "નીચે નહિં બનાવો" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "કોઈ ક્રિયા શક્ય નથી" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "શક્ય ક્રિયાઓ: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"સ્ક્રીન/કાર્યસ્થળ/વિન્ડોના ગુણધર્મો છાપો અથવા સુધારો, અથવા તેની સાથે સંપર્ક કરો, EWMH " +"સ્પષ્ટીકરણને અનુસરીને.\n" +"આ સ્પષ્ટીકરણ વિશે વધુ જાણકારી માટે, જુઓ:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "વિન્ડો અથવા કાર્યસ્થળોની યાદીના વિકલ્પો" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "વિન્ડો અથવા કાર્યસ્થળોની યાદી બતાવવા માટેના વિકલ્પો" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "વિન્ડોના ગુણધર્મો સુધારવા માટેના વિકલ્પો" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "વિન્ડોના ગુણધર્મો સુધારવા માટેના વિકલ્પો બતાવો" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "કાર્યસ્થળના ગુણધર્મો સુધારવા માટેના વિકલ્પો" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "કાર્યસ્થળના ગુણધર્મો સુધારવા માટેના વિકલ્પો બતાવો" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "સ્ક્રીનના ગુણધર્મો સુધારવા માટેના વિકલ્પો બતાવો" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "સ્ક્રીનના ગુણધર્મો સુધારવા માટેના વિકલ્પો બતાવો" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "દલીલોનું પદચ્છેદન કરતી વખતે ભૂલ: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "સ્ક્રીન %d સાથે સંપર્ક કરી શકતા નથી: સ્ક્રીન અસ્તિત્વમાં નથી\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "કાર્યસ્થળ %d સાથે સંપર્ક કરી શકતા નથી: કાર્યસ્થળ શોધી શકતા નથી\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "વર્ગ જૂથ \"%s\" સાથે સંપર્ક કરી શકતા નથી: વર્ગ જૂથ શોધી શકતા નથી\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu સાથેના જૂથ નેતા ધરાવતા કાર્યક્રમ સાથે સંપર્ક કરી શકતા નથી: કાર્યક્રમ શોધી શકતા " +"નથી\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu સાથેની વિન્ડો સાથે સંપર્ક કરી શકતા નથી: વિન્ડો શોધી શકતા નથી\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "N_ROWS હરોળો વાપરો" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "માત્ર વર્તમાન કાર્યસ્થળ બતાવો" + +#~ msgid "Use RTL as default direction" +#~ msgstr "RTL ને મૂળભૂત દિશા તરીકે વાપરો" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "કાર્યસ્થળ સમાવિષ્ટોની જગ્યાએ કાર્યસ્થળ નામો બતાવો" + +#~ msgid "Use a vertical orientation" +#~ msgstr "ઊભી દિશા વાપરો" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "ક્રિયાયાદીમાં વિન્ડો બતાવશો નહિં" + +#~ msgid "Always group windows" +#~ msgstr "હંમેશા વિન્ડોનું જૂથ કરો" + +#~ msgid "Never group windows" +#~ msgstr "ક્યારેય વિન્ડોનું જૂથ કરશો નહિં" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "બધા કાર્યસ્થળોમાંથી વિન્ડો દર્શાવો" + +#~ msgid "Enable Transparency" +#~ msgstr "પારદર્શકતા સક્રિય કરો" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "સ્રોત વર્ગ: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "જૂથ નામ: %s\n" diff --git a/po/he.gmo b/po/he.gmo new file mode 100644 index 0000000..595643c Binary files /dev/null and b/po/he.gmo differ diff --git a/po/he.po b/po/he.po new file mode 100644 index 0000000..9a17b89 --- /dev/null +++ b/po/he.po @@ -0,0 +1,1278 @@ +# translation of libwnck.HEAD.he.po to Hebrew +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Gil Osher , 2002, 2004. +# Gil 'Dolfin' Osher , 2002,2003. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD.he\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-08-18 23:47+0300\n" +"PO-Revision-Date: 2011-08-18 23:51+0200\n" +"Last-Translator: Yaron Shahrabani \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.3.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "יישום ללא שם" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "מחליף סביבות עבודה" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "כלי להחלפה בין סביבות עבודה" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "נא ללחוץ כאן כדי להחליף לסביבת עבודה %s" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "יש ללחוץ כדי להתחיל לגרור \"%s\"" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "סביבת העבודה הנוכחית: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "יש ללחוץ כדי להחליף ל־\"%s\"" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "אין חלונות פתוחים" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "בוחר החלונות" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "כלי להחלפה בין חלונות" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "רשימת חלונות" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "כלי להחלפה בין חלונות נראים" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "מזעור _הכול" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "ביטו_ל מזעור הכול" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "ה_גדלת הכול" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "ביטו_ל הגדלת הכול" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "_סגירת הכול" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "בי_טול המזעור" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "_מזעור" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "_שחזור" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "ה_גדלה" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "סביבת עבודה %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "סביבת עבודה 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "סביבת עבודה %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_הזזה" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "שי_נוי גודל" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "תמיד _עליון" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "תמיד בסביבת העבודה ה_גלויה" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "רק בסביבת עבודה _זו" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "העברה לסביבת _העבודה השמאלית" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "העברה לסביבת הע_בודה הימנית" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "העברה לסביבת העבו_דה שלמעלה" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "העברה לסביבת העבודה של_מטה" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "העברה לסביבת _עבודה אחרת" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_סגירה" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "חלון ללא שם" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "X window ID of the window to examine or modify" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "X window ID of the group leader of an application to examine" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "Class resource of the class group to examine" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMBER of the workspace to examine or modify" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMBER of the screen to examine or modify" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "Alias of --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Change the number of workspaces of the screen to NUMBER" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Change the workspace layout of the screen to use NUMBER rows" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Change the workspace layout of the screen to use NUMBER columns" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "Show the desktop" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "Stop showing the desktop" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Move the viewport of the current workspace to X coordinate X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Move the viewport of the current workspace to Y coordinate Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "Minimize the window" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "Unminimize the window" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "Maximize the window" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "Unmaximize the window" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "Maximize horizontally the window" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "Unmaximize horizontally the window" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "Maximize vertically the window" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "Unmaximize vertically the window" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "Start moving the window via the keyboard" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "Start resizing the window via the keyboard" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "Activate the window" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "Close the window" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "Make the window fullscreen" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "Make the window quit fullscreen mode" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "Make the window always on top" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "Make the window not always on top" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "Make the window below other windows" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "Make the window not below other windows" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "Shade the window" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "Unshade the window" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "Make the window have a fixed position in the viewport" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Make the window not have a fixed position in the viewport" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "Make the window not appear in pagers" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "Make the window appear in pagers" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "Make the window not appear in tasklists" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "Make the window appear in tasklists" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "Make the window visible on all workspaces" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "Make the window visible on the current workspace only" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Move the window to workspace NUMBER (first workspace is 0)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "Change the X coordinate of the window to X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "Change the Y coordinate of the window to Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "Change the width of the window to WIDTH" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "Change the height of the window to HEIGHT" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "Change the name of the workspace to NAME" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "Activate the workspace" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Invalid value \"%s\" for --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Conflicting options are present: --%s and --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Invalid argument \"%d\" for --%s: the argument must be positive\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Conflicting options are present: --%s or --%s, and --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Invalid argument \"%s\" for --%s, valid values are: %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Viewport cannot be moved: there is no current workspace\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "Action not allowed\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Window cannot be moved to workspace %d: the workspace does not exist\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Screen Number: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometry (width, height): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Number of Workspaces: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Window Manager: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Active Workspace: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "Active Window: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Showing the desktop: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Workspace Name: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Workspace Number: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "On Screen: %d (Window Manager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Viewport position (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Position in Layout (row, column): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Left Neighbor: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Right Neighbor: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Top Neighbor: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Bottom Neighbor: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Class Group ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Class Group Name: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "set" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "Icons: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Number of Windows: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "Name: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Icon Name: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "none" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Startup ID: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "all workspaces" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "On Workspace: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "normal window" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "desktop" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "dock or panel" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "dialog window" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "tearoff toolbar" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "tearoff menu" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "utility window" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "splash screen" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "Window Type: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometry (x, y, width, height): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Class Instance: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "Session ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Group Leader: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transient for: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "minimized" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "maximized" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "maximized horizontally" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "maximized vertically" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "shaded" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "pinned" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "sticky" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "above" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "below" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "fullscreen" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "needs attention" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "skip pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "skip tasklist" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "State: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "move" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "resize" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "shade" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "unshade" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "stick" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "maximize horizontally" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "unmaximize horizontally" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "maximize vertically" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "unmaximize vertically" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "change workspace" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "pin" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "unpin" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "minimize" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "unminimize" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "_שחזר" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "unmaximize" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "change fullscreen mode" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "close" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "make above" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "unmake above" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "make below" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "unmake below" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "no action possible" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Possible Actions: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "Options to list windows or workspaces" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "Show options to list windows or workspaces" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "Options to modify properties of a window" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "Show options to modify properties of a window" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "Options to modify properties of a workspace" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "Show options to modify properties of a workspace" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "Options to modify properties of a screen" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "Show options to modify properties of a screen" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Error while parsing arguments: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Cannot interact with screen %d: the screen does not exist\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "Cannot interact with workspace %d: the workspace cannot be found\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Cannot interact with window with XID %lu: the window cannot be found\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "Use N_ROWS rows" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Only show current workspace" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Use RTL as default direction" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Show workspace names instead of workspace contents" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Use a vertical orientation" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Don't show window in tasklist" + +#~ msgid "Always group windows" +#~ msgstr "Always group windows" + +#~ msgid "Never group windows" +#~ msgstr "Never group windows" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Display windows from all workspaces" + +#~ msgid "Enable Transparency" +#~ msgstr "Enable Transparency" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Resource Class: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Group Name: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "none" + +#~ msgid "window|none" +#~ msgstr "none" + +#~ msgid "startupID|none" +#~ msgstr "none" + +#~ msgid "Unknown Window" +#~ msgstr "חלון לא ידוע" + +#~ msgid "_Unroll" +#~ msgstr "גלול _חזרה" + +#~ msgid "Roll _Up" +#~ msgstr "גלול מ_עלה" diff --git a/po/hi.gmo b/po/hi.gmo new file mode 100644 index 0000000..af97d66 Binary files /dev/null and b/po/hi.gmo differ diff --git a/po/hi.po b/po/hi.po new file mode 100644 index 0000000..855fce4 --- /dev/null +++ b/po/hi.po @@ -0,0 +1,1292 @@ +# translation of libwnck.master.po to Hindi +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# G Karunakar , 2002. +# Rajesh Ranjan , 2005, 2006, 2008. +# Rajesh Ranjan , 2009, 2013. +# chandankumar , 2012. +msgid "" +msgstr "" +"Project-Id-Version: libwnck.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-03-22 14:36+0530\n" +"Last-Translator: raj \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" +"\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "अनामित अनुप्रयोग" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "कार्यस्थान सविचर" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "कार्यस्थान बदलने का उपकरण" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "कार्यस्थान %s में बदलने के लिए इधर क्लिक करें" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" को खींचना शुरू करने के लिए क्लिक करें" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "मौजूदा कार्यस्थान: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\" में स्विच करने के लिए क्लिक करें" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "कोई विंडो नहीं खुला" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "विंडो चयनक" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "कार्यस्थान बदलने का उपकरण" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "विंडो सूची" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "कार्यस्थान बदलने का उपकरण" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "सबको छोटा करें (_n)" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "सबको छोटे से बड़ा करें (_m)" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "बडा करें (_x)" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "सबको छोटे से बड़ा करें (_U)" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "सबको बंद करें (_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "छोटे से बड़ा करें (_m)" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "न्यूनतम (_n)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "बडे से छोटा करें (_x)" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "बडा करें (_x)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "कार्यस्थान %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "कार्यस्थान 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "कार्यस्थान %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "खिसकायें (_M)" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "आकार बदलें (_R)" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "हमेसा शीर्ष पर (_T)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "हमेशा दृश्य कार्यस्थान पर (_A)" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "केवल इसी कार्यस्थान पर (_O)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "बांयें कार्यस्थान में ले जाएँ (_L)" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "दांयें कार्यस्थान में ले जाएँ (_R)" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "ऊपरी कार्यस्थान में ले जाएँ (_U)" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "नीचे कार्यस्थान में ले जाएँ (_D)" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "दूसरे कार्यस्थान में ले जाएँ (_W)" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "बंद करें (_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "अनामित विंडो" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "विंडो की X विंडो ID जाँचने या बदलने के लिए" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "जाँचने के लिए किसी प्रोग्रान के समूह लीडर का X विंडो आईडी" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "जाँचने के लिए वर्ग संसाधन का वर्ग समूह" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "क्लास" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "जाँचने या बदलने के लिए कार्यस्थान की संख्या" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "संख्या" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "जाँचने या बदलने के लिए स्क्रीन की संख्या" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "विंडो का उपनाम --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"अनुप्रयोग/वर्ग समूह/कार्यस्थान/स्क्रीन की विंडो सूची (output format: \"XID: " +"Window Name" +"\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"स्क्रीन के कार्यस्थान की सूची (output format: \"Number: Workspace Name\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "संख्या से स्क्रीन के सक्रीन के कार्यस्थान की संख्या बदलें" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "स्क्रीन के कार्यस्थान लेआउट को बदलें संख्या पंक्ति के प्रयोग के लिए" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "स्क्रीन के कार्यस्थान लेआउट को बदलें संख्या स्तंभ के प्रयोग के लिए" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "डेस्कटॉप दिखाएं" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "डेस्कटॉप दिखाना रोकें" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "मौजूदा कार्यस्थान से X निर्देशांक X में दृश्य पोर्ट खिसकाएँ" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "मौजूदा कार्यस्थान से Y निर्देशांक Y में दृश्य पोर्ट खिसकाएँ" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "वाई" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "विंडो न्यूनतम करें" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "विंडो बड़ा करें" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "विंडो अधिकतम करें" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "विंडो बडे से छोटा करें" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "विंडो को क्षैतिज रूप से अधिकतम करें" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "विंडो को क्षैतिज रूप से गैर अधिकतम करें" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "विंडो को लंबवत रूप से अधिकतम करें" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "विंडो को लंबवत रूप से गैर अधिकतम करें" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "कुंजीपट से होकर विंडो खिसकाना आरंभ करें" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "कुंजीपट से होकर विंडो का आकार बदलना आरंभ करें" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "विंडो सक्रिय करें" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "विंडो बंद करें" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "विंडो पूर्णस्क्रीन बनाएं" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "विंडो को पूर्ण स्क्रीन मोड छोड़ना बनाएँ" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "विंडो को हमेशा शीर्ष पर रखें" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "विंडो को हमेशा शीर्ष पर मत रखें" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "विंडो को दूसरे विंडो के नीचे रखें" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "विंडो को दूसरे विंडो के नीचे मत रखें" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "विंडो छायांकित करें" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "विंडो गैर छायांकित करें" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "दृश्य पोर्ट में स्थिर स्थिति में विंडो बनाएँ" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "दृश्य पोर्ट में स्थिर स्थिति में विंडो मत बनाएँ" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "पेजर में विंडो को प्रकट होता मत बनाएँ" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "पेजर में विंडो को प्रकट होता बनाएँ" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "विंडो को कार्यसूची में मत प्रकट होने दें" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "विंडो को कार्यसूची में प्रकट होने दें" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "विंडो को सभी कार्यस्थानों पर दिखने दें" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "विंडो को केवल मौजूदा कार्यस्थान पर दिखने दें" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "कार्यस्थान संख्या (पहला कार्यस्थान 0 है) में विंडो को खिसकाएँ" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "विंडो के एक्स निर्देशांक को एक्स में बदलें" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "विंडो के वाई निर्देशांक को वाई में बदलें" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "विंडो की चौड़ाई को चौड़ाई में बदलें" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "चौड़ाई" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "विंडो की ऊँचाई को ऊँचाई में बदलें" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ऊँचाई" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"विंडो के प्रकार को प्रकार में बदलें (valid values: normal, desktop, dock, " +"dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "प्रकार" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "विंडो के नाम को नाम में बदलें" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "नाम" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "कार्यस्थान में ले जाएँ" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "अवैध मान \"%s\" --%s के लिए" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: screen %d should be interacted with, but --%s has " +"been used\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: विंडो या स्क्रीन %d के कार्यस्थान को सूचीबद्ध होना " +"चाहिए, " +"लेकिन --%s प्रयोग किया गया है\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: %d कार्यस्थान को इसके साथ अंतःक्रिया करनी चाहिए, " +"लेकिन --%s " +"प्रयोग किया गया है\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: %d कार्यस्थान का विंडो को सूचीबद्ध होना चाहिए, " +"लेकिन --%s " +"प्रयोग किया गया है\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: एक अनुप्रयोग को अंतःक्रियात्मक होना चाहिए, लेकिन " +"--%s प्रयोग " +"किया गया है\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: एक अनुप्रयोग को सूचीबद्ध होना चाहिए, लेकिन --%s " +"प्रयोग किया " +"गया है\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: वर्ग समूह \"%s\" को इसके साथ अंतःक्रियात्मक होना " +"चाहिए, " +"लेकिन --%s प्रयोग किया गया है\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: वर्ग समूह \"%s\" के विंडो को इसके साथ " +"अंतःक्रियात्मक होना " +"चाहिए, लेकिन --%s प्रयोग किया गया है\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"विरोधी विकल्प उपस्थित हैं: एक विंडो को अंतःक्रियात्मक होना चाहिए, लेकिन --%s " +"प्रयोग " +"किया गया है\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "विरोधी विकल्प उपस्थित हैं: --%s और --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"अवैध तर्क \"%d\" --%s के लिए: तर्क को जरूर कड़ाई से सकारात्मक होना चाहिए\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "अवैध तर्क \"%d\" --%s के लिए: तर्क को जरूर सकारात्मक होना चाहिए\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "विरोधी विकल्प उपस्थित हैं: --%s या --%s, और --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "अवैध तर्क \"%s\" --%s के लिए, वैध मान हैं: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"स्क्रीन का कार्यस्थान लेआउट बदल नहीं सकता है: यह लेआउट पहले से स्वामित्व में " +"है\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"व्यूपोर्ट खिसकाया नहीं जा सकता है: मौजूदा कार्यस्थान किसी व्यूपोर्ट को नहीं " +"समाहित करता " +"है\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "व्यूपोर्ट खिसकाया नहीं जा सकता है: कोई मौजूदा कार्यस्थान नहीं है\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "क्रिया लागू नहीं\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"विंडो को %d कार्यस्थान में खिसकाया नहीं जा सकता है: कार्यस्थान मौजूद नहीं है\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "स्क्रीन संख्या: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ज्यामिति (width, height): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "कार्यस्थान की संख्या: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "कार्यस्थान लेआउट (rows, columns, orientation): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "विंडो प्रबंधक: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "कोई नहीं" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "सक्रिय कार्यस्थान: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "कोई नहीं" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "सक्रिय विंडो: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "डेस्कटॉप दिखा रही हूँ: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "सही" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "गलत" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "कार्यस्थान नाम: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "कार्यस्थान संख्या: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "ऑनस्क्रीन: %d (Window Manager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "व्यूपोर्ट स्थिति (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "लेआउट में स्थिति (row, column): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "बायां पड़ोसी: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "दाहिना पड़ोसी: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "शीर्ष पड़ोसी: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "तलवर्ती पड़ोसी: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "वर्ग समूह आईडी: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "वर्ग समूह नाम: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "सेट" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "प्रतीक: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "विंडो की संख्या: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "नाम: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "प्रतीक नाम: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "कोई नहीं" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "स्टार्टअप: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "सभी कार्यस्थान" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "कार्यस्थान पर: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "नामित विंडो" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "डेस्कटॉप" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "डाक या पैनल" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "संवादन विंडो" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "टीयरऑफ औजारपेटी" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "टीयरऑफ मेन्यू" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "सहयुक्तियां विंडो" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "स्पैलैश स्क्रीन" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "विंडो प्रकार: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ज्यामिति (x, y, width, height): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "वर्ग उदाहरण: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "सत्र ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "भूमिका: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "समूह नेता: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "इसके लिएउत्पन्न: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "न्यूनतम" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "अधिकतम" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "क्षैतिज रूप से अधिकतम" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "लंबवत रूप से अधिकतम" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "छायांकित" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "पिन किया" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "स्टिकी" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "ऊपर" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "नीचे" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "पूर्णस्क्रीन" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "ध्यान जरूरी" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "स्किप पेजर" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "कार्यसूची छोड़ें" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "सामान्य" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "स्थिति: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "खिसकायें" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "आकार बदलें" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "छायांकित" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "गैर छायांकित करें" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "स्टिकी" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "अनस्टिक" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "क्षैतिज रूप से अधिकतम करें" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "क्षैतिज रूप से अधिकतम मत करें" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "लंबवत रूप से अधिकतम करें" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "लंबवत रूप से अधिकतम मत करें" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "कार्यस्थान बदलें" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "पिन" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "अनपिन" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "न्यूनतम करें" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "गैर न्यूनतम करें" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "अधिकतम करें" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "गैर अधिकतम करें" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "पूर्णस्क्रीन मोड बदलें" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "बंद करें" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "ऊपर बनाएं" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "ऊपर मत बनाएं" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "नीचे बनाएं" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "नीचे मत बनाएं" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "कोई क्रिया संभव नहीं है" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "संभावित क्रिया: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"स्क्रीन/कार्यस्थान/विंडो की विशेषताओं को छापें या बदलें, या इसके साथ " +"अंतःक्रिया करें, " +"निम्नलिखित EWMH विशेषता के साथ.\n" +"इस विशेषता के बारे में सूचना के लिए, देखें:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "विंडो या कार्यस्थान की सूची में विकल्प" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "विंडो या कार्यस्थान की सूची में विकल्प दिखाएं" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "विंडो की विशेषता को बदलने के लिए विकल्प" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "विंडो की विशेषता बदलने के विकल्प दिखाएँ" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "कार्यस्थान की विशेषता को बदलने के लिए विकल्प" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "कार्यस्थान की विशेषता को बदलने के लिए विकल्प दिखाएँ" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "स्क्रीन की विशेषता को बदलने के लिए विकल्प" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "स्क्रीन की विशेषता को बदलने के लिए विकल्प दिखाएँ" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "तर्क के विश्लेषण के दौरान त्रुटि: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "स्क्रीन %d से अंतःक्रिया नहीं कर सका: स्क्रीन मौजूद नहीं है\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "कार्यस्थान %d से अंतःक्रिया नहीं कर सका: कार्यस्थान मौजूद नहीं है\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"वर्ग समूह \"%s\" से अंतःक्रिया नहीं कर सका: वर्ग समूह मिल नहीं सका है\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu के साथ इसका समूह लीडर के रखना अंतःक्रिया नहीं कर सका: अनुप्रयोग मिल " +"नहीं सका " +"है\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID %lu के साथ विंडो अंतःक्रिया नहीं कर सका: विंडो मिल नहीं सका है\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "N_ROWS पंक्ति का प्रयोग करें" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "केवल इसी कार्यस्थान पर दिखाएं" + +#~ msgid "Use RTL as default direction" +#~ msgstr "RTL का प्रयोग तयशुदा दिशा के लिए करें" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "कार्यस्थान सामग्री के बदले कार्यस्थान नाम दिखाएँ" + +#~ msgid "Use a vertical orientation" +#~ msgstr "लंबवत अभिमुखन का प्रयोग करें" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "कार्यसूची में विंडो मत दिखाएं" + +#~ msgid "Always group windows" +#~ msgstr "हमेशा समूह विंडो" + +#~ msgid "Never group windows" +#~ msgstr "कभी नहीं समूह विंडो" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "सभी कार्यस्थान से विंडो दिखाएँ" + +#~ msgid "Enable Transparency" +#~ msgstr "पारदर्शिता सक्रिय करें" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "संसाधन वर्ग: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "समूह नाम: %s\n" diff --git a/po/hr.gmo b/po/hr.gmo new file mode 100644 index 0000000..23a6544 Binary files /dev/null and b/po/hr.gmo differ diff --git a/po/hr.po b/po/hr.po new file mode 100644 index 0000000..d9e8d5b --- /dev/null +++ b/po/hr.po @@ -0,0 +1,1200 @@ +# Translation of libwnck to Croatiann +# Copyright (C) Croatiann team +# Translators: Automatski Prijevod <>,Denis Lackovic ,Robert Sedak ,Zoran Jankovic , +msgid "" +msgstr "" +"Project-Id-Version: libwnck 0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-09 17:56+0200\n" +"PO-Revision-Date: 2008-04-13 23:33+0000\n" +"Last-Translator: Launchpad Translations Administrators \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2008-05-28 10:06+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "Mjenjač radnih površina" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "Alat za izmjenu radnih površina" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Kliknite na ovo za prebacivanje na radnu površinu %s" + +#: ../libwnck/pager.c:1908 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "" + +#: ../libwnck/pager.c:1911 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "" + +#: ../libwnck/pager.c:1916 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "" + +#: ../libwnck/selector.c:1171 +msgid "No Windows Open" +msgstr "Nema otvorenih prozora" + +#: ../libwnck/selector.c:1224 +msgid "Window Selector" +msgstr "Odabir prozora" + +#: ../libwnck/selector.c:1225 +msgid "Tool to switch between windows" +msgstr "Alat za prebacivanje između prozora" + +#: ../libwnck/tasklist.c:727 +msgid "Window List" +msgstr "Popis prozora" + +#: ../libwnck/tasklist.c:728 +msgid "Tool to switch between visible windows" +msgstr "Alat za izmjenu između vidljivih prozora" + +#: ../libwnck/tasklist.c:3016 +msgid "Mi_nimize All" +msgstr "" + +#: ../libwnck/tasklist.c:3027 +msgid "Un_minimize All" +msgstr "" + +#: ../libwnck/tasklist.c:3035 +msgid "Ma_ximize All" +msgstr "" + +#: ../libwnck/tasklist.c:3046 +msgid "_Unmaximize All" +msgstr "" + +#: ../libwnck/tasklist.c:3058 +msgid "_Close All" +msgstr "_Zatvori sve" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/test-selector.c:12 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "" + +#: ../libwnck/window-action-menu.c:415 +msgid "Unmi_nimize" +msgstr "Vrati sa mi_nimiziranog" + +#: ../libwnck/window-action-menu.c:422 +msgid "Mi_nimize" +msgstr "_Minimiziraj" + +#: ../libwnck/window-action-menu.c:430 +msgid "Unma_ximize" +msgstr "Vrati sa _maksimiziranog" + +#: ../libwnck/window-action-menu.c:437 +msgid "Ma_ximize" +msgstr "_Maksimiziraj" + +#: ../libwnck/window-action-menu.c:744 ../libwnck/workspace.c:281 +#, fuzzy, c-format +msgid "Workspace %d" +msgstr "Mjenjač radnih površina" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, fuzzy +msgid "Workspace 1_0" +msgstr "Pomakni na radnu površinu _iznad" + +#: ../libwnck/window-action-menu.c:755 ../libwnck/window-action-menu.c:902 +#, fuzzy, c-format +msgid "Workspace %s%d" +msgstr "Mjenjač radnih površina" + +#: ../libwnck/window-action-menu.c:1045 +msgid "_Move" +msgstr "_Pomakni" + +#: ../libwnck/window-action-menu.c:1052 +msgid "_Resize" +msgstr "_Promjena veličine" + +#: ../libwnck/window-action-menu.c:1061 +msgid "Always On _Top" +msgstr "" + +#: ../libwnck/window-action-menu.c:1069 +msgid "_Always on Visible Workspace" +msgstr "Uvijek na _vidljivom radnom prostoru" + +#: ../libwnck/window-action-menu.c:1074 +#, fuzzy +msgid "_Only on This Workspace" +msgstr "Samo na _ovom radnom prostoru" + +#: ../libwnck/window-action-menu.c:1081 +msgid "Move to Workspace _Left" +msgstr "Pomakni na _lijevu radnu površinu" + +#: ../libwnck/window-action-menu.c:1087 +msgid "Move to Workspace R_ight" +msgstr "Pomakni na _desnu radnu površinu" + +#: ../libwnck/window-action-menu.c:1093 +msgid "Move to Workspace _Up" +msgstr "Pomakni na radnu površinu _iznad" + +#: ../libwnck/window-action-menu.c:1099 +msgid "Move to Workspace _Down" +msgstr "Pomakni na radnu površinu is_pod" + +#: ../libwnck/window-action-menu.c:1102 +msgid "Move to Another _Workspace" +msgstr "Premjesti se u drugu _radnu površinu" + +#: ../libwnck/window-action-menu.c:1122 +msgid "_Close" +msgstr "_Zatvori" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:169 ../libwnck/wnckprop.c:171 +#: ../libwnck/wnckprop.c:173 ../libwnck/wnckprop.c:262 +msgid "NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:161 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:163 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:169 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:175 +msgid "Show the desktop" +msgstr "" + +#: ../libwnck/wnckprop.c:177 +msgid "Stop showing the desktop" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:181 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: ../libwnck/wnckprop.c:181 ../libwnck/wnckprop.c:264 +msgid "X" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:266 +msgid "Y" +msgstr "" + +#: ../libwnck/wnckprop.c:191 +msgid "Minimize the window" +msgstr "" + +#: ../libwnck/wnckprop.c:193 +msgid "Unminimize the window" +msgstr "" + +#: ../libwnck/wnckprop.c:195 +msgid "Maximize the window" +msgstr "" + +#: ../libwnck/wnckprop.c:197 +msgid "Unmaximize the window" +msgstr "" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize horizontally the window" +msgstr "" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize horizontally the window" +msgstr "" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize vertically the window" +msgstr "" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize vertically the window" +msgstr "" + +#: ../libwnck/wnckprop.c:207 +msgid "Start moving the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:209 +msgid "Start resizing the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:211 +msgid "Activate the window" +msgstr "" + +#: ../libwnck/wnckprop.c:213 +msgid "Close the window" +msgstr "" + +#: ../libwnck/wnckprop.c:216 +msgid "Make the window fullscreen" +msgstr "" + +#: ../libwnck/wnckprop.c:218 +msgid "Make the window quit fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window not always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:228 +msgid "Shade the window" +msgstr "" + +#: ../libwnck/wnckprop.c:230 +msgid "Unshade the window" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:234 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:250 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:253 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:256 +msgid "Make the window appear in tasklists" +msgstr "" + +#: ../libwnck/wnckprop.c:258 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:260 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: ../libwnck/wnckprop.c:262 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: ../libwnck/wnckprop.c:264 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: ../libwnck/wnckprop.c:266 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: ../libwnck/wnckprop.c:268 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:268 +msgid "WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:270 +msgid "Change the height of the window to HEIGHT" +msgstr "" + +#: ../libwnck/wnckprop.c:270 +msgid "HEIGHT" +msgstr "" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:273 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: ../libwnck/wnckprop.c:273 +msgid "TYPE" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the name of the workspace to NAME" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "NAME" +msgstr "" + +#: ../libwnck/wnckprop.c:281 +msgid "Activate the workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:373 ../libwnck/wnckprop.c:397 +#: ../libwnck/wnckprop.c:433 ../libwnck/wnckprop.c:456 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "" + +#: ../libwnck/wnckprop.c:490 ../libwnck/wnckprop.c:509 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:499 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:522 ../libwnck/wnckprop.c:542 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:532 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:564 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:588 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:600 ../libwnck/wnckprop.c:609 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:628 ../libwnck/wnckprop.c:709 +#: ../libwnck/wnckprop.c:756 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:667 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:775 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:807 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:850 +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:884 +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:890 +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:926 ../libwnck/wnckprop.c:935 +#: ../libwnck/wnckprop.c:944 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:1026 +msgid "Action not allowed\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1022 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1086 ../libwnck/wnckprop.c:1218 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1089 +#, c-format +msgid "%lu: %s\n" +msgstr "" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1109 +#, c-format +msgid "%d: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1172 +#, c-format +msgid "Screen Number: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1174 ../libwnck/wnckprop.c:1255 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1178 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1184 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1194 ../libwnck/wnckprop.c:1251 +#: ../libwnck/wnckprop.c:1443 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Window Manager: %s\n" +msgstr "" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1200 ../libwnck/wnckprop.c:1279 +#: ../libwnck/wnckprop.c:1291 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "%d (\"%s\")" +msgstr "" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1205 ../libwnck/wnckprop.c:1284 +#: ../libwnck/wnckprop.c:1296 ../libwnck/wnckprop.c:1308 +#: ../libwnck/wnckprop.c:1320 ../libwnck/wnckprop.c:1435 +msgid "workspace|none" +msgstr "" + +#: ../libwnck/wnckprop.c:1206 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1215 +#, c-format +msgid "\"%s\"" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "%lu (%s)" +msgstr "" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1227 +msgid "window|none" +msgstr "" + +#: ../libwnck/wnckprop.c:1228 +#, c-format +msgid "Active Window: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1233 +msgid "true" +msgstr "" + +#: ../libwnck/wnckprop.c:1233 +msgid "false" +msgstr "" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1252 ../libwnck/wnckprop.c:1444 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1266 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1269 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1285 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1297 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1309 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1321 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: Ressource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1333 +#, c-format +msgid "Resource Class: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1335 +#, c-format +msgid "Group Name: %s\n" +msgstr "" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1341 ../libwnck/wnckprop.c:1365 +#: ../libwnck/wnckprop.c:1419 +msgid "set" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1344 ../libwnck/wnckprop.c:1368 +#: ../libwnck/wnckprop.c:1375 ../libwnck/wnckprop.c:1405 +#: ../libwnck/wnckprop.c:1412 ../libwnck/wnckprop.c:1422 +#: ../libwnck/wnckprop.c:1487 ../libwnck/wnckprop.c:1497 +#: ../libwnck/wnckprop.c:1505 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1345 ../libwnck/wnckprop.c:1369 +#: ../libwnck/wnckprop.c:1423 +#, c-format +msgid "Icons: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1348 ../libwnck/wnckprop.c:1386 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1360 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Name: %s\n" +msgstr "" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1415 +#, c-format +msgid "Icon Name: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1376 ../libwnck/wnckprop.c:1498 +#, c-format +msgid "PID: %s\n" +msgstr "" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1383 +msgid "startupID|none" +msgstr "" + +#: ../libwnck/wnckprop.c:1384 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1432 +msgid "all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1436 +#, c-format +msgid "On Workspace: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1451 +msgid "normal window" +msgstr "" + +#: ../libwnck/wnckprop.c:1454 +msgid "desktop" +msgstr "" + +#: ../libwnck/wnckprop.c:1457 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1460 +msgid "dialog window" +msgstr "" + +#: ../libwnck/wnckprop.c:1463 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1466 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1469 +msgid "utility window" +msgstr "" + +#: ../libwnck/wnckprop.c:1472 +msgid "splash screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1477 +#, c-format +msgid "Window Type: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1480 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1489 +#, c-format +msgid "Class Group: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1491 +#, c-format +msgid "XID: %lu\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1506 +#, c-format +msgid "Session ID: %s\n" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's on top of it +#: ../libwnck/wnckprop.c:1517 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1532 ../libwnck/wnckprop.c:1579 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1536 ../libwnck/wnckprop.c:1581 +msgid ", " +msgstr "" + +#: ../libwnck/wnckprop.c:1542 +msgid "minimized" +msgstr "" + +#: ../libwnck/wnckprop.c:1543 +msgid "maximized" +msgstr "" + +#: ../libwnck/wnckprop.c:1547 +msgid "maximized horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1549 +msgid "maximized vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1551 +msgid "shaded" +msgstr "" + +#: ../libwnck/wnckprop.c:1552 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1553 +msgid "sticky" +msgstr "" + +#: ../libwnck/wnckprop.c:1554 +msgid "above" +msgstr "" + +#: ../libwnck/wnckprop.c:1555 +msgid "below" +msgstr "" + +#: ../libwnck/wnckprop.c:1556 +msgid "fullscreen" +msgstr "" + +#: ../libwnck/wnckprop.c:1557 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1562 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:1564 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1566 +msgid "normal" +msgstr "" + +#: ../libwnck/wnckprop.c:1567 +#, c-format +msgid "State: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1588 +msgid "move" +msgstr "" + +#: ../libwnck/wnckprop.c:1589 +msgid "resize" +msgstr "" + +#: ../libwnck/wnckprop.c:1590 +msgid "shade" +msgstr "" + +#: ../libwnck/wnckprop.c:1591 +msgid "unshade" +msgstr "" + +#: ../libwnck/wnckprop.c:1592 +msgid "stick" +msgstr "" + +#: ../libwnck/wnckprop.c:1593 +msgid "unstick" +msgstr "" + +#: ../libwnck/wnckprop.c:1595 +msgid "maximize horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1597 +msgid "unmaximize horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1599 +msgid "maximize vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1601 +msgid "unmaximize vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1604 +msgid "change workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1606 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1608 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1609 +msgid "minimize" +msgstr "" + +#: ../libwnck/wnckprop.c:1610 +msgid "unminimize" +msgstr "" + +#: ../libwnck/wnckprop.c:1611 +msgid "maximize" +msgstr "" + +#: ../libwnck/wnckprop.c:1612 +msgid "unmaximize" +msgstr "" + +#: ../libwnck/wnckprop.c:1614 +msgid "change fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:1615 +msgid "close" +msgstr "" + +#: ../libwnck/wnckprop.c:1617 +msgid "make above" +msgstr "" + +#: ../libwnck/wnckprop.c:1619 +msgid "unmake above" +msgstr "" + +#: ../libwnck/wnckprop.c:1621 +msgid "make below" +msgstr "" + +#: ../libwnck/wnckprop.c:1623 +msgid "unmake below" +msgstr "" + +#: ../libwnck/wnckprop.c:1625 +msgid "no action possible" +msgstr "" + +#: ../libwnck/wnckprop.c:1626 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1805 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1815 +msgid "Options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1816 +msgid "Show options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1823 +msgid "Options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1824 +msgid "Show options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1831 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1832 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1839 +msgid "Options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1840 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1851 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1874 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1930 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1953 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1976 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1999 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" diff --git a/po/hu.gmo b/po/hu.gmo new file mode 100644 index 0000000..0a8ea8c Binary files /dev/null and b/po/hu.gmo differ diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..023519a --- /dev/null +++ b/po/hu.po @@ -0,0 +1,1292 @@ +# Hungarian translation of libwnck. +# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the libwnck package. +# +# Peter Doma , 2002. +# Andras Timar , 2003, 2004. +# Laszlo Dvornik , 2004. +# Gabor Kelemen , 2005, 2007, 2008, 2009, 2011. +# Balázs Úr , 2013. +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-03-15 12:37+0100\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Névtelen alkalmazás" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Munkaterület-váltó" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Munkaterületek közötti váltást segítő eszköz" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Kattintson ide a(z) %s. munkaterületre váltáshoz" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Kattintson a(z) „%s” húzásának megkezdéséhez" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Jelenlegi munkaterület: „%s”" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Kattintson ide a következőre váltáshoz: „%s”" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "Nincsenek nyitott ablakok" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Ablakválasztó" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Ablakok közötti váltást segítő eszköz" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Ablaklista" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "A látható ablakok közötti váltást segítő eszköz" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "Összes mi_nimalizálása" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "Összes _eredeti méretű" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "Összes ma_ximalizálás" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "Összes _eredeti méretű" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "_Mindent bezár" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "_Eredeti méret" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimalizálás" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "_Eredeti méret" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ximalizálás" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "%d. munkaterület" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "1_0. munkaterület" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "%s%d. munkaterület" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "Át_helyezés" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Át_méretezés" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Mindig _felül" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Mindig a látható m_unkaterületen" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Csak ezen a munkaterületen" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Áthelyezés a bal ol_dali munkaterületre" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Áthelyezés a j_obb oldali munkaterületre" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Áthelyezés a fel_ső munkaterületre" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Áthelyezés az _alsó munkaterületre" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Áthelyezés mási_k munkaterületre" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Bezárás" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Névtelen ablak" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "A vizsgálandó vagy módosítandó ablak X ablakazonosítója" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "A vizsgálandó alkalmazás csoportvezetőjének X ablakazonosítója" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "A vizsgálandó osztálycsoport osztályerőforrása" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "OSZTÁLY" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "A vizsgálandó vagy módosítandó munkaterület SZÁMA" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "SZÁM" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "A vizsgálandó vagy módosítandó képernyő SZÁMA" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "A --window álneve" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Az alkalmazás/osztálycsoport/munkaterület/képernyő ablakainak felsorolása " +"(kimeneti formátum: „XID: ablaknév”)" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"A képernyő munkaterületeinek felsorolása (kimeneti formátum: „Szám: " +"munkaterület neve”)" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "A képernyő munkaterületei számának módosítása a SZÁMRA" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"A képernyő munkaterület-elrendezésének módosítása SZÁM sor használatára" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"A képernyő munkaterület-elrendezésének módosítása SZÁM oszlop használatára" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Az asztal megjelenítése" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Az asztal megjelenítésének befejezése" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"A jelenlegi munkaterület nézetmezőjének áthelyezése az X vízszintes " +"koordinátára" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"A jelenlegi munkaterület nézetmezőjének áthelyezése az Y vízszintes " +"koordinátára" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Az ablak minimalizálása" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Az ablak eredeti méretűvé tétele" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Az ablak maximalizálása" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Az ablak eredeti méretűvé tétele" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Az ablak maximalizálása vízszintesen" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Az ablak eredeti méretűvé tétele vízszintesen" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Az ablak maximalizálása függőlegesen" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Az ablak eredeti méretűvé tétele függőlegesen" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Az ablak mozgatásának megkezdése a billentyűzettel" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Az ablak átméretezésének megkezdése a billentyűzettel" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Az ablak aktiválása" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Az ablak bezárása" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Az ablak teljes méretűvé tétele" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Az ablak kiléptetése a teljes méretű módból" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Az ablak mindig felül lévővé tétele" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Az ablak mindig felül lévővé tételének megszüntetése" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Az ablak más ablakok mögé vitele" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Az ablak visszahozása más ablakok mögül" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Az ablak felgördítése" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Az ablak legördítése" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Az ablak rögzített pozíciójúvá tétele a nézetportban" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Az ablak rögzített pozíciójának megszüntetése a nézetportban" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Az ablak ne jelenjen meg a lapozókban" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Az ablak jelenjen meg a lapozókban" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Az ablak ne jelenjen meg a feladatlistákban" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Az ablak jelenjen meg a feladatlistákban" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Az ablak legyen látható az összes munkaterületen" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Az ablak csak az aktuális munkaterületen legyen látható" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Az ablak áthelyezése a SZÁM számú munkaterületre (az első száma 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Az ablak vízszintes koordinátájának módosítása X-re" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Az ablak függőleges koordinátájának módosítása Y-ra" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Az ablak szélességének módosítása a SZÉLESSÉGRE" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "SZÉLESSÉG" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Az ablak magasságának módosítása a MAGASSÁGRA" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "MAGASSÁG" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Az ablak típusának módosítása a TÍPUSRA (érvényes értékek: normal, desktop, " +"dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TÍPUS" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "A munkaterület nevének módosítása a NÉVRE" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NÉV" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "A munkaterület aktiválása" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "A(z) --%s „%s” értéke érvénytelen" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) %d. képernyővel kellene együttműködni, de a(z) --" +"%s került felhasználásra\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) %d. képernyő ablakait vagy munkaterületeit " +"kellene használni, de a(z) --%s került felhasználásra\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) %d. munkaterülettel kellene együttműködni, de a" +"(z) --%s került felhasználásra\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) %d. munkaterület ablakait kellene felsorolni, de a" +"(z) --%s került felhasználásra\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: egy alkalmazással kellene együttműködni, de a(z) --%s " +"került felhasználásra\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: egy alkalmazás ablakait kellene felsorolni, de a(z) --" +"%s került felhasználásra\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) „%s” osztálycsoporttal kellene együttműködni, de a" +"(z) --%s került felhasználásra\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: a(z) „%s” osztálycsoport ablakait kellene felsorolni, " +"de a(z) --%s került felhasználásra\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"A kapcsolók ütköznek: egy ablakkal kellene együttműködni, de a(z) --%s " +"került felhasználásra\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "A kapcsolók ütköznek: --%s és --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"A(z) „%d” argumentum érvénytelen a(z) --%s kapcsolóhoz: az argumentumnak " +"szigorúan pozitívnak kell lennie\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"A(z) „%d” argumentum érvénytelen a(z) --%s kapcsolóhoz: az argumentumnak " +"pozitívnak kell lennie\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "A kapcsolók ütköznek: --%s vagy --%s és --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" +"A(z) --$%2s „$%1s” argumentuma érvénytelen, az érvényes értékek: $%3s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"A munkaterület elrendezése nem módosítható a képernyőn: az elrendezés már " +"birtokba van véve\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"A nézetport nem mozgatható: az aktuális munkaterület nem tartalmaz " +"nézetportot\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "A nézetport nem mozgatható: nincs aktuális munkaterület\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "A művelet nem engedélyezett\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Az ablak nem mozgatható a(z) %d. munkaterületre: a munkaterület nem létezik\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Képernyőszám: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (szélesség, magasság): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Munkaterületek száma: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Munkaterület-elrendezés (sorok, oszlopok, tájolás): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Ablakkezelő: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d („%s”)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "nincs" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktív munkaterület: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "„%s”" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "nincs" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktív ablak: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Az asztal megjelenítése: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "igaz" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "hamis" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Munkaterület neve: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Munkaterület száma: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Képernyő: %d (ablakkezelő: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Nézetport pozíciója: (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Pozíció az elrendezésben (sor, oszlop): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Bal szomszéd: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Jobb szomszéd: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Felső szomszéd: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Alsó szomszéd: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Osztálycsoport azonosítója: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Osztálycsoport neve: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "beállítva" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikonok: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Ablakok száma: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Név: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Ikonnév: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "Folyamatazonosító: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "nincs" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Indítási azonosító: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "minden munkaterület" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Munkaterület: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "normál ablak" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "asztal" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "dokk vagy panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "párbeszédablak" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "leválasztható eszköztár" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "leválasztható menü" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "segédablak" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "indítókép" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Ablaktípus: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, szélesség, magasság): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Osztálypéldány: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "Munkamenet-azonosító: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "Szerep: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Csoportvezető: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Áttetsző ehhez: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimalizálva" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maximalizálva" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "vízszintesen maximalizálva" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "függőlegesen maximalizálva" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "felgördítve" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "rögzítve" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "ragadós" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "felett" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "alatt" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "teljes képernyős" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "figyelmet kér" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "lapozó kihagyása" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "feladatlista kihagyása" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normál" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Állapot: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "áthelyezés" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "átméretezés" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "felgördítés" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "legördítés" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "tapadás" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "tapadás megszüntetése" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "vízszintes maximalizálás" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "vízszintes maximalizálás megszüntetése" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "függőleges maximalizálás" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "függőleges maximalizálás megszüntetése" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "munkaterület-váltás" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "rögzítés" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "rögzítés megszüntetése" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimalizálás" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "minimalizálás megszüntetése" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maximalizálás" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "maximalizálás megszüntetése" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "teljes képernyős mód váltása" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "bezárás" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "előtérbe hozás" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "előtérből elvitel" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "háttérbe küldés" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "visszahozás háttérből" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "nincs lehetséges művelet" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Lehetséges műveletek: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Egy képernyő/munkaterület/ablak tulajdonságainak megjelenítése vagy " +"módosítása, vagy együttműködés azokkal, az EMWH szabvány követésével.\n" +"A szabvánnyal kapcsolatos további információkért keresse fel a\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec oldalt." + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Ablakok vagy munkaterületet felsorolására szolgáló kapcsolók" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "" +"Ablakok vagy munkaterületet felsorolására szolgáló kapcsolók megjelenítése" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Ablak tulajdonságainak módosítására szolgáló kapcsolók" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Ablak tulajdonságainak módosítására szolgáló kapcsolók megjelenítése" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Egy munkaterület tulajdonságainak módosítására szolgáló kapcsolók" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "" +"Egy munkaterület tulajdonságainak módosítására szolgáló kapcsolók " +"megjelenítése" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Egy képernyő tulajdonságainak módosítására szolgáló kapcsolók" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "" +"Egy képernyő tulajdonságainak módosítására szolgáló kapcsolók megjelenítése" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Hiba az argumentumok feldolgozása során: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Nem lehet együttműködni a(z) %d. képernyővel: a képernyő nem létezik\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Nem lehet együttműködni a(z) %d. munkaterülettel: a munkaterület nem " +"létezik\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Nem lehet együttműködni a(z) „%s” osztálycsoporttal: az osztálycsoport nem " +"található\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Nem lehet együttműködni a(z) %lu. XID-jú csoportazonosítójú alkalmazással: " +"az alkalmazás nem található\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Nem lehet együttműködni a(z) %lu. XID-jú ablakkal: az ablak nem található\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "SORSZÁM sor használata" + +#~ msgid "N_ROWS" +#~ msgstr "SORSZÁM" + +#~ msgid "Only show current workspace" +#~ msgstr "Csak az aktuális munkaterület megjelenítése" + +#~ msgid "Use RTL as default direction" +#~ msgstr "Az RTL használata alapértelmezett irányként" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Munkaterületnevek megjelenítése a munkaterületek tartalma helyett" + +#~ msgid "Use a vertical orientation" +#~ msgstr "Függőleges tájolás használata" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Ne jelenítse meg az ablakot a feladatlistában" + +#~ msgid "Always group windows" +#~ msgstr "Mindig csoportosítsa az ablakokat" + +#~ msgid "Never group windows" +#~ msgstr "Soha ne csoportosítsa az ablakokat" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Az összes munkaterület ablakainak megjelenítése" + +#~ msgid "Enable Transparency" +#~ msgstr "Átlátszóság engedélyezése" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "Erőforrásosztály: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "Csoportnév: %s\n" diff --git a/po/id.gmo b/po/id.gmo new file mode 100644 index 0000000..71e2924 Binary files /dev/null and b/po/id.gmo differ diff --git a/po/id.po b/po/id.po new file mode 100644 index 0000000..7a69232 --- /dev/null +++ b/po/id.po @@ -0,0 +1,1243 @@ +# Indonesia translation of libwnck. +# Copyright (C) 2003 THE libwnck'S COPYRIGHT HOLDER +# This file is distributed under the same license as the libwnck package. +# +# Mohammad DAMT , 2003, 2004. +# Ahmad Riza H Nst , 2006. +# Dirgita , 2010. +# Andika Triwidada , 2009, 2011, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-03-25 10:36+0000\n" +"PO-Revision-Date: 2013-04-02 22:06+0700\n" +"Last-Translator: Andika Triwidada \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: Indonesia\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Aplikasi tidak berjudul" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Pengalih Area Kerja" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Perkakas untuk bertukar area kerja" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klik untuk pindah ke area kerja %s" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Klik untuk mulai menyeret \"%s\"" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Area kerja saat ini: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Klik untuk berpindah ke \"%s\"" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "Tidak Ada Jendela Terbuka" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Pemilih Jendela" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Perkakas untuk berpindah jendela" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "Daftar Jendela" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "Perkakas untuk berpindah anatar jendela yang tampak" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "_Minimalkan Semua" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "Jangan _Minimalkan Semua" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "Ma_ksimalkan Semua" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "Jangan Maksimalkan Sem_ua" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "_Tutup Semua" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Tak Mi_nimalkan" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimalkan" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Tak Ma_ksimalkan" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ksimalkan" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Area Kerja %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Area Kerja 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Area Kerja %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "_Pindahkan" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Ubah Uku_ran" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Selalu Di A_tas" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Sel_alu pada Area Kerja yang Tampak" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Hanya untuk Area Kerja ini" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Pindah ke Area Kerja _Kiri" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "P_indah ke Area Kerja Kanan" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Pindah ke Area Kerja _Atas" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Pindah ke Area Kerja _Bawah" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "_Pindah ke Area Kerja Lain" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Tutup" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Jendela tidak berjudul" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X window dari jendela yang akan diperiksa atau diubah" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ID jendela X dari pemimpin kelompok aplikasi yang akan diperiksa" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Sumber daya kelas dari kelompok kelas yang akan diperiksa" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "KELAS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ANGKA adalah nomor area kerja yang akan diperiksa atau diubah" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "ANGKA" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "ANGKA adalah nomor layar yang akan diperiksa atau diubah" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alias dari --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Daftar jendela dari kelompok/area kerja/layar aplikasi/kelas (format " +"keluaran: \"XID: Nama Jendela\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "Daftar area kerja layar (format keluaran: \"Nomor: Nama Ruang Kerja\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Mengubah banyaknya area kerja layar menjadi ANGKA" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Mengubah tata letak area kerja layar menjadi ANGKA baris" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Mengubah tata letak area kerja layar menjadi ANGKA kolom" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Menampilkan desktop" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Berhenti menampilkan desktop" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Memindahkan titik lihat (viewport) area kerja saat ini menjadi X koordinat X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Memindahkan titik lihat (viewport) area kerja saat ini menjadi Y koordinat Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Meminimalkan jendela" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Tidak meminimalkan ukuran jendela" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Memaksimalkan ukuran jendela" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Tidak memaksimalkan ukuran jendela" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Memaksimalkan ukuran horisontal jendela" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Tidak memaksimalkan ukuan horisontal jendela" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Memaksimalkan ukuran vertikal jendela" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Tidak memaksimalkan ukuran vertikal jendela" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Mulai memindah jendela lewat papan ketik" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Mulai mengubah ukuran jendela lewat papan ketik" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Mengaktifkan jendela" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Menutup jendela" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Membuat jendela sepenuh layar" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Keluar dari mode layar penuh" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Membuat jendela selalu berada di atas" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Membuat jendela tidak selalu berada di atas" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Membuat jendela berada di bawah jendela lain" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Membuat jendela tidak di bawah jendela lain" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Membuat jendela berbayang" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Tidak membuat jendela berbayang" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Membuat jendela memiliki posisi yang tetap pada titik lihat (viewport)" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" +"Membuat jendela tidak memiliki posisi yang tetap pada titik lihat (viewport)" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Membuat jendela tidak muncul pada peyeranta" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Membuat jendela muncul pada penyeranta" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Membuat jendela tidak muncul pada daftar aplikasi" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Membuat jendela muncul pada daftar aplikasi" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Membuat jendela terlihat pada semua area kerja" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Membuat jendela hanya terlihat pada area kerja yang ia tempati" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" +"Memindahkan jendela pada area kerja ANGKA (area kerja pertama adalah 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Mengubah koordinat X jendela menjadi X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Mengubah koordinat Y jendela menjadi Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Mengubah lebar jendela sesuai LEBAR" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LEBAR" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Mengubah tinggi jendela sesuai TINGGI" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "TINGGI" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Mengubah jendela menjadi JENIS (nilai yang sah: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "JENIS" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Mengubah nama area kerja menjadi NAMA" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAMA" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Mengaktifkan area kerja" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Nilai \"%s\" tidak sah untuk --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Terdapat opsi yang konflik: layar %d seharusnya berinteraksi, tetapi --%s " +"telah dipakai\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Terdapat opsi yang konflik: jendela atau area kerja layar %d seharusnya " +"didaftarkan, tetapi --%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Terdapat opsi yang konflik: area kerja %d seharusnya berinteraksi, tetapi --" +"%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: jendela atau area kerja %d seharusnya " +"didaftarkan, tetapi --%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: aplikasi seharusnya berinteraksi, tetapi --" +"%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: jendela aplikasi seharusnya didaftarkan, " +"tetapi --%s telah dipakai\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: kelompok kelas \"%s\" seharusnya " +"berinteraksi, tetapi --%s telah dipakai\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: jendela dari kelompok kelas \"%s\" " +"seharusnya didaftarkan, tetapi --%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Terdapat opsi yang bertentangan: jendela seharusnya berinteraksi, tetapi --" +"%s telah dipakai\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Terdapat opsi yang bertentangan: --%s dan --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Argumen \"%d\" tidak sah untuk --%s: argumen harus benar-benar positif\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "Argumen \"%d\" tidak sah untuk --%s: argumen harus positif\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Terjadi konflik opsi: --%s atau --%s, dan --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argumen \"%s\" tidak sah untuk --%s: nilai yang sah: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Tidak dapat mengubah tata letak area kerja di layar: tata leta telah " +"dimiliki\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Titik lihat (viewport) tidak dapat dipindahkan: area kerja kini tidak memuat " +"titik lihat\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" +"Titik lihat (viewport) tidak dapat dipindahkan: tidak ada area kerja kini\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Aksi tidak diizinkan\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Jendela tidak dapat dipindahkan ke area kerja %d: area kerja tidak ada\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Nomor Layar: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometri (lebar, tinggi): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Jumlah Area Kerja: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Tata Letak Area Kerja (baris, kolom, arah): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Manajer Jendela: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "nihil" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Area Kerja Aktif: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "nihil" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Jendela Aktif: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Menampilkan desktop: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "benar" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "salah" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nama Area Kerja: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Nomor Area Kerja: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Pada Layar: %d (Manajer Jendela: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posisi titik lihat (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posisi pada Tata Letak (baris, kolom): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Tetangga Kiri: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Tetangga Kanan: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Tetangga Atas: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Tetangga Bawah: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID Kelompok Kelas: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nama Kelompok Kelas: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "ditentukan" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Ikon: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Jumlah Jendela: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Nama: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nama Ikon: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "nihil" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID Pemulaian (Startup): %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "semua area kerja" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Pada Area Kerja: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "jendela normal" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "desktop" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "dok atau panel" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "jendela dialog" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "bilah alat yang dapat dilepas" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "menu yang dapat dilepas" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "jendela utilitas" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "layar pembuka" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Jenis Jendela: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometri (x, y, lebar, tinggi): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Instansi Kelas: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID Sesi: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Peran: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Pemimpin Kelompok: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transien untuk: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "diminimalkan" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "dimaksimalkan" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "dimaksimalkan arah mendatar" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "dimaksimalkan arah tegak" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "berbayang" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "dipatok" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "lengket" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "di atas" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "di bawah" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "layar penuh" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "perlu perhatian" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "lewati penyeranta" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "lewati daftar aplikasi" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normal" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Kondisi: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "pindah" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "ubah ukuran" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "berbayang" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "tak berbayang" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "lengket" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "tak lengket" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maksimalkan ukuran horisontal" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "tak maksimalkan ukuran vertikal" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maksimalkan ukuran vertikal" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "tak maksimalkan ukuran vertikal" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "ubah area kerja" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "patok" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "lepas patok" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimalkan" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "tak minimalkan" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maksimalkan" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "tak maksimalkan" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "ubah mode layar penuh" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "tutup" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "buat di atas" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "buat tak di atas" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "buat di bawah" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "buat tak di bawah" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "tak ada aksi yang mungkin" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Aksi yang Mungkin: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Mencetak atau mengubah properti dari suatu layar/area kerja/jendela, atau " +"berinteraksi dengannya, mengikuti spesifikasi EWMH.\n" +"Untuk informasi tentang spesifikasi ini, lihat:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Opsi untuk mendaftar jendela atau area kerja" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Menampilkan opsi untuk mendaftar jendela atau area kerja" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Opsi untuk mengubah sifat dari sebuah jendela" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Menampilkan opsi untuk mengubah sifat dari sebuah jendela" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Opsi untuk mengubah sifat dari sebuah area kerja" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "Menampilkan opsi untuk mengubah sifat dari sebuah area kerja" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Opsi untuk mengubah sifat dari sebuah layar" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Menampilkan opsi untuk mengubah sifat dari sebuah layar" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Galat seaktu mengurai argumen: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Tidak dapat berinteraksi dengan layar %d: layar tidak ada\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Tidak dapat berinteraksi dengan area kerja %d: area kerja tidak ditemukan\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Tidak dapat berinteraksi dengan kelompok kelas \"%s\": kelompok kelas tak " +"ditemukan\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Tidak dapat berinteraksi dengan aplikasi yang memiliki XID pemimpin kelompok " +"%lu: aplikasi tidak ditemukan\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Tidak dapat berinteraksi dengan jendela yang memiliki XID %lu: jendela tidak " +"ditemukan\n" diff --git a/po/insert-header.sin b/po/insert-header.sin new file mode 100644 index 0000000..b26de01 --- /dev/null +++ b/po/insert-header.sin @@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +} diff --git a/po/is.gmo b/po/is.gmo new file mode 100644 index 0000000..7a68cf4 Binary files /dev/null and b/po/is.gmo differ diff --git a/po/is.po b/po/is.po new file mode 100644 index 0000000..2cc8ebe --- /dev/null +++ b/po/is.po @@ -0,0 +1,152 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# Samúel Jón Gunnarsson , 2003. +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-05 11:49+0200\n" +"PO-Revision-Date: 2004-03-13 06:26-0000\n" +"Last-Translator: helgi \n" +"Language-Team: Icelandic \n" +"Language: is\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libwnck/application.c:26 +msgid "untitled application" +msgstr "ónefnt forrit" + +#: libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "Vinnusvæðaflettir" + +#: libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "Verkfæri til þess að fletta á milli vinnusvæða" + +#: libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klikkaðu hér til að fletta yfir á vinnusvæði %s" + +#: libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "" + +#: libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "" + +#: libwnck/selector.c:747 +msgid "Window Selector" +msgstr "" + +#: libwnck/selector.c:748 +#, fuzzy +msgid "Tool to switch between windows" +msgstr "Verkfæri til þess að fletta á milli vinnusvæða" + +#: libwnck/tasklist.c:690 +msgid "Window List" +msgstr "" + +#: libwnck/tasklist.c:691 +#, fuzzy +msgid "Tool to switch between visible windows" +msgstr "Verkfæri til þess að fletta á milli vinnusvæða" + +#: libwnck/tasklist.c:2324 +#, fuzzy +msgid "_Close All" +msgstr "_Loka" + +#: libwnck/tasklist.c:2339 +#, fuzzy +msgid "_Minimize All" +msgstr "Lág_marka" + +#: libwnck/tasklist.c:2350 +#, fuzzy +msgid "_Unminimize All" +msgstr "Stækka upp á _ný" + +#: libwnck/window-action-menu.c:211 +msgid "Unmi_nimize" +msgstr "Stækka upp á _ný" + +#: libwnck/window-action-menu.c:218 +msgid "Mi_nimize" +msgstr "Lág_marka" + +#: libwnck/window-action-menu.c:226 +msgid "Unma_ximize" +msgstr "Minn_ka glugga" + +#: libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "_Hámarka" + +#: libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "_Rúlla Niður" + +#: libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "Rúlla _Upp" + +#: libwnck/window-action-menu.c:256 +#, fuzzy +msgid "_Only on This Workspace" +msgstr "Einungis á _þessu vinnusvæði" + +#: libwnck/window-action-menu.c:263 +#, fuzzy +msgid "_Always on Visible Workspace" +msgstr "Einungis á _þessu vinnusvæði" + +#: libwnck/window-action-menu.c:378 libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "Vinnusvæði %d" + +#: libwnck/window-action-menu.c:386 +#, fuzzy +msgid "Workspace 1_0" +msgstr "Vinnusvæði %d" + +#: libwnck/window-action-menu.c:388 +#, c-format +msgid "Workspace %s%d" +msgstr "Vinnusvæði %s%d" + +#: libwnck/window-action-menu.c:485 +msgid "_Move" +msgstr "_Flytja" + +#: libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "Bre_yta stærð" + +#: libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "_Loka" + +#: libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "%s" + +#: libwnck/window.c:32 +msgid "untitled window" +msgstr "ónefndur gluggi" + +#~ msgid "Put on _All Workspaces" +#~ msgstr "Setj_a á öll vinnusvæði" diff --git a/po/it.gmo b/po/it.gmo new file mode 100644 index 0000000..487b19b Binary files /dev/null and b/po/it.gmo differ diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..903f660 --- /dev/null +++ b/po/it.po @@ -0,0 +1,1276 @@ +# Italian translation for libwnck +# This file is distributed under the same license as libwnck package +# Copyright (C) 2002-2010, 2011, 2013 Free Software Foundation, Inc. +# Pier Luigi Fiorini , 2002. +# +# Luca Ferretti , 2005, 2006, 2007, 2008, 2009. +# +# Per ogni dubbio fare riferimento alla fd.o WM spec +# http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html +# +# Nei messaggi del comando `wnckprop` è mantenuta la versione inglese +# (pager, tasklist, workspace, viewport) perché considerato "tecnico" +# +# Nei messaggi che appaiono nella UI vale +# * workspace -> spazio di lavoro +# * viewport -> spazio visibile +# come da discussione su TP +# Milo Casagrande , 2011, 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-08-26 09:54+0200\n" +"PO-Revision-Date: 2013-08-26 09:54+0200\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Applicazione senza titolo" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Selettore spazio di lavoro" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Strumento per spostarsi tra gli spazi di lavoro" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Fare clic qui per passare allo spazio di lavoro %s" + +#: ../libwnck/pager.c:2188 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Fare clic per iniziare a trascinare «%s»" + +#: ../libwnck/pager.c:2191 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Spazio di lavoro corrente: «%s»" + +#: ../libwnck/pager.c:2196 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Fare clic qui per passare a «%s»" + +#: ../libwnck/selector.c:1184 +msgid "No Windows Open" +msgstr "Nessuna finestra aperta" + +#: ../libwnck/selector.c:1240 +msgid "Window Selector" +msgstr "Selettore finestra" + +#: ../libwnck/selector.c:1241 +msgid "Tool to switch between windows" +msgstr "Strumento per spostarsi tra le finestre" + +#: ../libwnck/tasklist.c:594 +msgid "Window List" +msgstr "Elenco finestre" + +#: ../libwnck/tasklist.c:595 +msgid "Tool to switch between visible windows" +msgstr "Strumento per spostarsi tra le finestre visibili" + +#: ../libwnck/tasklist.c:2952 +msgid "Mi_nimize All" +msgstr "_Minimizza tutto" + +#: ../libwnck/tasklist.c:2963 +msgid "Un_minimize All" +msgstr "_Deminimizza tutto" + +#: ../libwnck/tasklist.c:2971 +msgid "Ma_ximize All" +msgstr "Ma_ssimizza tutto" + +#: ../libwnck/tasklist.c:2982 +msgid "_Unmaximize All" +msgstr "D_eminimizza tutto" + +#: ../libwnck/tasklist.c:2994 +msgid "_Close All" +msgstr "_Chiudi tutto" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "De_minimizza" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "_Minimizza" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "Dema_ssimizza" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Ma_ssimizza" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:273 +#, c-format +msgid "Workspace %d" +msgstr "Spazio di lavoro %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Spazio di lavoro 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Spazio di lavoro %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "M_uovi" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "_Ridimensiona" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Sempre in _primo piano" + +# GNOME-2-24 +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Sempre su spazio di lavoro _visibile" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "Solo su _questo spazio di lavoro" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Sposta su spazio di lavoro a s_inistra" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Sposta su spazio di lavoro a d_estra" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Sposta su spazio di lavoro in alt_o" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Sposta su spazio di lavoro in _basso" + +# GNOME-2-24 +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Sposta su _altro spazio di lavoro" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Chiudi" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:49 +msgid "Untitled window" +msgstr "Finestra senza titolo" + +# Da qui in poi appaiono i messaggi per +# il programma a riga di comando +# wnckprop, spiegazione --help e altro +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ID X window della finestra da esaminare o modificare" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ID X window del leader di gruppo di un'applicazione da esaminare" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Risorsa di classe del gruppo di classi da esaminare" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASSE" + +# qui comincia l'uso "tecnico" di workspace/vieport +# lasciati non tradotti +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "NUMERO di workspace da esaminare o modificare" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NUMERO" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "NUMERO dello schermo da esaminare o modificare" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "Alias per --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Elenca le finestre della applicazione/gruppo di classi/workspace/schermo " +"(formato: \"XID: Nome finestra\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Elenca le workspace dello schermo (formato: \"Numero: Nome spazio di lavoro" +"\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Cambia il numero di workspace dello schermo a NUMERO" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" +"Cambia la disposizione delle workspace dello schermo per usare NUMERO righe" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" +"Cambia la disposizione delle workspace dello schermo per usare NUMERO colonne" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Mostra la scrivania" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Termina di mostrare la scrivania" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"Sposta il viewport della workspace corrente alla coordinata orizzontale X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" +"Sposta il viewport della workspace corrente alla coordinata verticale Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimizza la finestra" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Deminimizza la finestra" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Massimizza la finestra" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Demassimizza la finestra" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Massimizza orizzontalmente la finestra" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Demassimizza orizzontalmente la finestra" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Massimizza verticalmente la finestra" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Demassimizza verticalmente la finestra" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Inizia il movimento della finestra con la tastiera" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Inizia il ridimensionamento della finestra con la tastiera" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Attiva la finestra" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Chiude la finestra" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Fa sì che la finestra passi a schermo intero" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Fa sì che la finestra esca dal modo a schermo intero" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Fa sì che la finestra sia sempre in primo piano" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Fa sia che la finestra non sia sempre in primo piano" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Fa sì che la finestra sia sotto le altre finestre" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Fa sì che la finestra non sia sotto le altre finestre" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Arrotola la finestra" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Srotola la finestra" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fa sì che la finestra abbia una posizione fissa nel viewport" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Fa sì che la finestra non abbia una posizione fissa nel viewport" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Fa sì che la finestra non appaia nei pager" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Fa sì che la finestra appaia nei pager" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Fa sì che la finestra non appaia nelle tasklist" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Fa sì che la finestra appaia nelle tasklist" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Rende visibile la finestra su tutte le workspace" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Rende visibile la finestra solo sulla workspace attuale" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Sposta la finestra sulla workspace NUMERO (la prima workspace è 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Cambia la coordinata orizzontale della finestra in X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Cambia la coordinata verticale della finestra in Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Cambia la larghezza della finestra in LARGHEZZA" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "LARGHEZZA" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Cambia l'altezza della finestra in ALTEZZA" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "ALTEZZA" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Cambia il tipo della finestra in TIPO (valori validi: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TIPO" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Cambia il nome della workspace in NOME" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NOME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Attiva la workspace" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Valore \"%s\" non valido per --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbe interagire con lo schermo " +"%d, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbero elencare le finestre o " +"le workspace dello schermo %d, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbe interagire con la " +"workspace %d, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbero elencare le finestre " +"della workspace %d, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbe interagire con " +"un'applicazione, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbero elencare le finestre di " +"un'applicazione, ma è stato usato --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbe interagire con il gruppo " +"di classe \"%s\", ma è stato usato --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbero elencare le finestre " +"del gruppo di classe \"%s\", ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Sono presenti opzioni contraddittorie: si dovrebbe interagire con una " +"finestra, ma è stato usato --%s\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Sono presenti opzioni contraddittorie: --%s e --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Argomento \"%d\" non valido per --%s: l'argomento deve essere strettamente " +"positivo\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Argomento \"%d\" non valido per --%s: l'argomento deve essere positivo\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Sono presenti opzioni contraddittorie: --%s o --%s insieme a --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Argomento \"%s\" non valido per --%s, valori validi sono: %s\n" + +# credo che workspace sia da intendere +# plurale qui, altrimenti non avrebbe +# senso parlare di layout +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Impossibile cambiare la disposizione delle workspace sullo schermo: la " +"disposizione è già posseduta\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Impossibile muovere il viewport: la workspace attuale non contiene alcun " +"viewport\n" + +# current --> attuale --> in uso ?? +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Impossibile muovere il viewport: non c'è alcuna workspace in uso\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Azione non consentita\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"Impossibile muovere la finestra sulla workspace %d: l'area non esiste\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Numero schermo: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometria (larghezza, altezza): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Numero di workspace: %d\n" + +# accorciato per entrare negli 80 caratteri della console +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Disposizione delle workspace (rig, col, orient): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Window manager: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "nessuna" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Workspace attiva: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "nessuna" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "Finestra attiva: %s\n" + +# nota: %s è true o false, ecco perché "mostrata" +# dovrebbe intendere che si sono nascoste le +# finestre e mostrata la scrivania, come fa il pulsante +# del pannello di GNOME +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Scrivania mostrata: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "vero" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "falso" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Nome della workspace: %s\n" + +# controllato, è riferito a quella esaminata +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Numero della workspace: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Sullo schermo: %d (window manager: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Posizione viewport (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Posizione nella disposizione (riga, colonna): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Vicino a sinistra: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Vicino a destra: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Vicino in alto: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Vicino in basso: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ID del gruppo di classe: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Nome del gruppo di classe: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "impostato" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "Icone: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Numero di finestre: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "Nome: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Nome icona: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "nessuno" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ID avvio: %s\n" + +# credo vada al posto del %s di quello dopo, quindi... +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "tutte" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Sulla workspace: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "finestra normale" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "scrivania" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "dock o pannello" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "finestra dialogo" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "barra strumenti staccata" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "menù staccato" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "finestra utilità" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "splash screen" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "Tipo di finestra: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometria (x, y, larghezza, altezza): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Istanza di classe: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ID sessione: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "Ruolo: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Leader di gruppo: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Transiente per: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimizzata" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "massimizzata" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "massimizzata orizzontalmente" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "massimizzata verticalmente" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "arrotolata" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "pinned" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "stiky" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "sopra" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "sotto" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "schermo intero" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "necessita attenzione" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "evita pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "evita tasklist" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "normale" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "Stato: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "sposta" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "ridimensiona" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "arrotola" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "srotola" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "stick" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "massimizza orizzontalmente" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "demassimizza orizzontalmente" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "massimizza verticalmente" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "demassimizza verticalmente" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "cambia workspace" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "pin" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "unpin" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimizza" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "deminimizza" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "massimizza" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "demassimizza" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "cambia modalità schermo intero" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "chiudi" + +# FIXME +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "fai sopra" + +# FIXME +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "disfai sopra" + +# FIXME +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "fai sotto" + +# FIXME +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "disfai sotto" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "nessuna azione possibile" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Azioni possibili: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Stampa o modifica le proprietà di uno schermo/workspace/finestra, oppure " +"interagisce con questi, seguendo le specifiche EWMH.\n" +"Per maggiori informazioni su tale specifica, consultare:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "Opzioni per elencare finestre o workspace" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "Mostra le opzioni per elencare finestre o workspace" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "Opzioni per modificare le proprietà di una finestra" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "Mostra le opzioni per modificare le proprietà di una finestra" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "Opzioni per modificare le proprietà di una workspace" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "Mostra le opzioni per modificare le proprietà di una workspace" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "Opzioni per modificare le proprietà di uno schermo" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "Mostra le opzioni per modificare le proprietà di uno schermo" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Errore durante l'analisi degli argomenti: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Impossibile interagire con lo schermo %d: lo schermo non esiste\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Impossibile interagire con la workspace %d: non è possibile trovare tale " +"workspace\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"Impossibile interagire con il gruppo di classe \"%s\": non è possibile " +"trovare tale gruppo di classe\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"Impossibile interagire con l'applicazione che ha XID %lu come leader di " +"gruppo: non è possibile trovare tale applicazione\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"Impossibile interagire con la finestra con XID %lu: non è possibile trovare " +"tale finestra\n" diff --git a/po/ja.gmo b/po/ja.gmo new file mode 100644 index 0000000..e6e3562 Binary files /dev/null and b/po/ja.gmo differ diff --git a/po/ja.po b/po/ja.po new file mode 100644 index 0000000..903dd0a --- /dev/null +++ b/po/ja.po @@ -0,0 +1,1204 @@ +# libwnck ja.po. +# Copyright (C) 2001-2009 Free Software Foundation, Inc. +# Takayuki KUSANO , 2001-2002. +# KAMAGASAKO Masatoshi , 2003. +# Takeshi AIHANA , 2003-2009. +# Noriko Mizumoto , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck master\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-09-03 15:29+0000\n" +"PO-Revision-Date: 2013-09-09 17:23+0000\n" +"Last-Translator: Noriko Mizumoto \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "タイトルの無いアプリケーション" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "ワークスペース切替" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "ワークスペース切替用ツール" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "これをクリックするとワークスペース %s へ切り替わります" + +#: ../libwnck/pager.c:2188 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "クリックすると \"%s\" のドラッグを開始します" + +#: ../libwnck/pager.c:2191 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "現在のワークスペース: \"%s\"" + +#: ../libwnck/pager.c:2196 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "クリックすると \"%s\" へ切り替わります" + +#: ../libwnck/selector.c:1184 +msgid "No Windows Open" +msgstr "ウィンドウが開いていません" + +#: ../libwnck/selector.c:1240 +msgid "Window Selector" +msgstr "ウィンドウの選択" + +#: ../libwnck/selector.c:1241 +msgid "Tool to switch between windows" +msgstr "ウィンドウを切り替えるツール" + +#: ../libwnck/tasklist.c:594 +msgid "Window List" +msgstr "ウィンドウの一覧" + +#: ../libwnck/tasklist.c:595 +msgid "Tool to switch between visible windows" +msgstr "表示可能なウィンドウ切り替えツール" + +#: ../libwnck/tasklist.c:2952 +msgid "Mi_nimize All" +msgstr "すべて最小化(_N)" + +#: ../libwnck/tasklist.c:2963 +msgid "Un_minimize All" +msgstr "すべて最小化解除(_M)" + +#: ../libwnck/tasklist.c:2971 +msgid "Ma_ximize All" +msgstr "すべて最大化(_X)" + +#: ../libwnck/tasklist.c:2982 +msgid "_Unmaximize All" +msgstr "すべて最大化解除(_U)" + +#: ../libwnck/tasklist.c:2994 +msgid "_Close All" +msgstr "すべて閉じる(_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "最小化解除(_N)" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "最小化(_N)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "最大化解除(_X)" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "最大化(_X)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:273 +#, c-format +msgid "Workspace %d" +msgstr "ワークスペース %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "ワークスペース 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "ワークスペース %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "移動(_M)" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "サイズの変更(_R)" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "最前面へ(_T)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "すべてのワークスペースに配置する(_A)" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "現在のワークスペースのみ(_O)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "左側のワークスペースへ移動する(_L)" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "右側のワークスペースへ移動する(_I)" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "上側のワークスペースへ移動する(_U)" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "下側のワークスペースへ移動する(_D)" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "別のワークスペースへ移動する(_W)" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "閉じる(_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:49 +msgid "Untitled window" +msgstr "タイトルの無いウインドウ" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "調査または変更するウィンドウを指定する" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "調査するアプリケーションのグループ・リーダを指定する" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "調査するクラス・グループのリソースを指定する" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "調査または変更するワークスペースの数を指定する" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "調査または変更するスクリーンの数を指定する" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window オプションの短縮版" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "List windows of the application/class group/workspace/screen (output format: \"XID: Window Name\")" +msgstr "アプリケーション/クラス・グループ/ワークスペース/スクリーンのウィンドウを一覧表示する (出力形式: \"XID: ウィンドウ名\")" + +#: ../libwnck/wnckprop.c:166 +msgid "List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "スクリーン毎にワークスペースの一覧を表示する (出力形式: \"番号: ワークスペース名\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "ワークスペースの数を NUMBER に変更する" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "縦方向のワークスペースの数を NUMBER 個にする" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "横方向のワークスペースの数を NUMBER 個にする" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "デスクトップを表示する" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "デスクトップの表示を停止する" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "現在のワークスペースのビューポートを横方向にX個移動する" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "現在のワークスペースのビューポートを縦方向にY個移動する" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "指定したウィンドウを最小化する" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "指定したウィンドウの最小化を解除する" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "指定したウィンドウを最大化する" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "指定したウィンドウの最大化を解除する" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "ウィンドウを横方向に最大化する" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "ウィンドウの横方向への最大化を解除する" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "ウィンドウを縦方向に最大化する" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "ウィンドウの縦方向への最大化を解除する" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "キーボードを使ったウィンドウの移動を開始する" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "キーボードを使ったウィンドウ・サイズの変更を開始する" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "ウィンドウを利用可能な状態にする" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "ウィンドウを閉じる" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "ウィンドウをフルスクリーン表示する" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "ウィンドウのフルスクリーン表示を解除する" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "指定したウィンドウを常に前面に出しておく" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "指定したウィンドウを常に前面に出しておかない" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "指定したウィンドウを他のウィンドウの下に置く" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "指定したウィンドウを他のウィンドウの下に置かない" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "ウィンドウを巻き上げる" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "ウィンドウの巻き上げを解除する" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "ウィンドウをビューポートの固定位置に貼り付ける" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "ウィンドウの貼り付けを解除する" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "指定したウィンドウをページャーの中に表示しない" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "指定したウィンドウをページャーの中に表示する" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "指定したウィンドウをタスク一覧の中に表示しない" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "指定したウィンドウをタスク一覧に表示する" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "指定したウィンドウをすべてのワークスペースに表示する" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "指定したウィンドウを現在のワークスペースにのみ表示する" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "指定したウィンドウをワークスペース NUMBER へ移動する (先頭のワークスペースは 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "指定したウィンドウのX座標を X に変更する" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "指定したウィンドウのY座標を Y に変更する" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "指定したウィンドウの幅を WIDTH にする" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "指定したウィンドウの高さを HEIGHT にする" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "Change the type of the window to TYPE (valid values: normal, desktop, dock, dialog, toolbar, menu, utility, splash)" +msgstr "指定したウィンドウの種類を TYPE にする (指定可能な値: normal、desktop、dock、dialog、toolbar、menu、utility、splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "ワークスペースの名前を NAME にする" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "ワークスペースを利用可能な状態にする" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "--%2$s オプションに対して \"%1$s\" は不正な値です" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "Conflicting options are present: screen %d should be interacted with, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: スクリーン %d とやりとりすべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "Conflicting options are present: windows or workspaces of screen %d should be listed, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: スクリーン %d のウィンドウまたはワークスペースの一覧を表示すべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "Conflicting options are present: workspace %d should be interacted with, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: ワークスペース %d とやりとりすべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "Conflicting options are present: windows of workspace %d should be listed, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: ワークスペース %d のウィンドウを一覧表示すべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "Conflicting options are present: an application should be interacted with, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: アプリケーションとやりとりすべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "Conflicting options are present: windows of an application should be listed, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: アプリケーションのウィンドウを一覧表示すべきですが --%s が使われています\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "Conflicting options are present: class group \"%s\" should be interacted with, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: クラスのグループ \"%s\" とやりとりすべきですが --%s が使われています\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "Conflicting options are present: windows of class group \"%s\" should be listed, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: クラスのグループ \"%s\" のウィンドウとやりとりすべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "Conflicting options are present: a window should be interacted with, but --%s has been used\n" +msgstr "オプションの衝突が発生しました: ウィンドウとやりとりすべきですが --%s が使われています\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "オプションの衝突が発生しました: --%s と --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "オプション --%2$s に対して \"%1$d\" は不正な引数です: 引数は正の数にしてください\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "オプション --%2$s に対して \"%1$d\" は不正な引数です: 引数は負でない数にしてください\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "オプションの衝突が発生しました: --%s または --%s、と --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "オプション --%2$s に対して \"%1$s\" は不正な引数です (妥当な値は %3$s)\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "Cannot change the workspace layout on the screen: the layout is already owned\n" +msgstr "スクリーンにあるワークスペースのレイアウトを変更できません: 既にレイアウトを所有しています\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "ビューポートを移動できません: 現在のワークスペースにはビューポートがありません\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "ビューポートを移動できません: 現在のワークスペースがありません\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "アクションは許可されていません\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "ウィンドウをワークスペース %d へ移動できません: ワークスペースが存在していません\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "<名前の指定なし>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "スクリーンの番号: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ジオメトリ (幅, 高さ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "ワークスペースの番号: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "ワークスペースのレイアウト (行, 列, 向き): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "ウィンドウ・マネージャー: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "ワークスペースなし" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "利用可能なワークスペース: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "ウィンドウなし" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "利用可能なウィンドウ: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "デスクトップの表示: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "はい" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "いいえ" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "ワークスペース名: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "ワークスペース番号: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "所属するスクリーン: %d (ウィンドウ・マネージャー: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "<ビューポートなし>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ビューポートの位置 (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "レイアウト (行, 列): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "左隣: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "右隣: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "真上: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "真下: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "クラスのグループ ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "クラスのグループ名: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "指定あり" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "<指定なし>" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "アイコン: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "ウィンドウの番号: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "名前: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "アイコン名: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "なし" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "起動 ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "すべてのワークスペース" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "所属するワークスペース: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "通常のウィンドウ" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "デスクトップ" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "ドックまたはパネル" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "ダイアログ・ウインドウ" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "取り外したツールバー" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "取り外したメニュー" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "ユーティリティ・ウインドウ" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "スプラッシュ・スクリーン" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "ウィンドウの種類: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ジオメトリ (x, y, 幅, 高さ): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "クラスのインスタンス: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "セッション ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +msgid "Role: %s\n" +msgstr "ロール: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "グループ・リーダ: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "一時的: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "minimized" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "maximized" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "maximized horizontally" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "maximized vertically" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "shaded" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "pinned" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "sticky" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "above" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "below" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "fullscreen" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "needs attention" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "skip pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "skip tasklist" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "通常" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "状態: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "move" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "resize" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "shade" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "unshade" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "stick" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "unstick" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "maximize horizontally" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "unmaximize horizontally" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "maximize vertically" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "unmaximize vertically" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "change workspace" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "pin" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "unpin" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "minimize" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "unminimize" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "maximize" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "unmaximize" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "change fullscreen mode" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "close" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "make above" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "unmake above" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "make below" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "unmake below" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "可能なアクションはありません" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "可能なアクション: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"EWMH 仕様に従って、スクリーン/ワークスペース/ウィンドウ、または通信する相手のプロパティを表示したり変更します;\n" +"この仕様について詳細は、次のウェブページを参照ください:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "ウィンドウやワークスペースを一覧表示するオプション" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "ウィンドウやワークスペースを一覧表示するオプションを表示する" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "ウィンドウのプロパティを変更するオプション" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "ウィンドウ・プロパティの変更に関するオプションを表示する" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "ワークスペースのプロパティを変更するオプション" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "ワークスペースのプロパティを変更するオプションを表示する" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "スクリーンのプロパティを変更するオプション" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "スクリーンのプロパティを変更するオプションを表示する" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "引数の解析でエラー: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "スクリーン %d と通信できません: そのようなスクリーンはありません\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "ワークスペース %d と通信できません: そのようなワークスペースはありません\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "クラス・グループ \"%s\" と通信できません: そのようなクラス・グループはありません\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "Cannot interact with application having its group leader with XID %lu: the application cannot be found\n" +msgstr "XID が %lu のグループ・リーダを持つアプリケーションと通信できません: そのようなアプリケーションはありません\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID が %lu のウィンドウと通信できません: そのようなウィンドウはありません\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "横を N_ROWS 列にする" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "現在のワークスペースのみ" + +#~ msgid "Use RTL as default direction" +#~ msgstr "デフォルトの向きとして RTL を使用する" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "ワークスペースの内容の代わりに名前を表示する" + +#~ msgid "Use a vertical orientation" +#~ msgstr "縦向きにする" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "タスク一覧にウィンドウを表示しない" + +#~ msgid "Always group windows" +#~ msgstr "常にウィンドウをグループ化する" + +#~ msgid "Never group windows" +#~ msgstr "ウィンドウをグループ化しない" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "すべてのワークスペースのウィンドウを表示する" + +#~ msgid "Enable Transparency" +#~ msgstr "透明にする" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "リソースのクラス: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "グループ名: %s\n" diff --git a/po/ka.gmo b/po/ka.gmo new file mode 100644 index 0000000..4c495a5 Binary files /dev/null and b/po/ka.gmo differ diff --git a/po/ka.po b/po/ka.po new file mode 100644 index 0000000..e1dbb6e --- /dev/null +++ b/po/ka.po @@ -0,0 +1,1202 @@ +# Georgian translation of libwnck. +# This file is distributed under the same license as the libwnck package. +# Vladimer Sichinava ვლადიმერ სიჭინავა , 2007. +# +# Vladimer Sichinava ვლადიმერ სიჭინავა , 2008. +msgid "" +msgstr "" +"Project-Id-Version: ka\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-09-30 11:39+0200\n" +"PO-Revision-Date: 2008-09-30 12:59+0200\n" +"Last-Translator: Vladimer Sichinava ვლადიმერ სიჭინავა \n" +"Language-Team: Georgian \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: KBabel 1.11.4\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "უსახელო პროგრამა" + +#: ../libwnck/pager-accessible.c:322 +msgid "Workspace Switcher" +msgstr "გარემოს გადამრთველი" + +#: ../libwnck/pager-accessible.c:333 +msgid "Tool to switch between workspaces" +msgstr "სამუშაო გარემოებებს შორის გადამრთველი ხელსაწყო" + +#: ../libwnck/pager-accessible.c:437 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "აქ დააწკაპუნეთ, %s გარემოში გადასასვლელად" + +#: ../libwnck/pager.c:1904 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "დააწკაპეთ გადათრევის დაწყებისთვის \"%s\"" + +#: ../libwnck/pager.c:1907 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "მიმდინარე სამუშაო გარემო: \"%s\"" + +#: ../libwnck/pager.c:1912 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "დააწკაპუნეთ \"%s\"-ზე გადასასვლელად" + +#: ../libwnck/selector.c:1171 +msgid "No Windows Open" +msgstr "არავითარი გახსნილი ფანჯარა" + +#: ../libwnck/selector.c:1224 +msgid "Window Selector" +msgstr "ფანჯრების გადამრთველი" + +#: ../libwnck/selector.c:1225 +msgid "Tool to switch between windows" +msgstr "ფანჯრებს შორის გადასვლის ხელსაწყო" + +#: ../libwnck/tasklist.c:720 +msgid "Window List" +msgstr "ფანჯრების სია" + +#: ../libwnck/tasklist.c:721 +msgid "Tool to switch between visible windows" +msgstr "ხილულ ფანჯრებს შორის გადასვლის ხელსაწყო" + +#: ../libwnck/tasklist.c:3005 +msgid "Mi_nimize All" +msgstr "ყველას მი_ნიმიზირება" + +#: ../libwnck/tasklist.c:3016 +msgid "Un_minimize All" +msgstr "ყველას მაქ_სიმიზირება" + +#: ../libwnck/tasklist.c:3024 +msgid "Ma_ximize All" +msgstr "ყველას მთლიან ეკრანზე გ_აშლა" + +#: ../libwnck/tasklist.c:3035 +msgid "_Unmaximize All" +msgstr "ყვ_ელასთვის თავდაპირველი ზომის დაბრუნება" + +#: ../libwnck/tasklist.c:3047 +msgid "_Close All" +msgstr "ყველას _დახურვა" + +#: ../libwnck/test-pager.c:15 +msgid "Use N_ROWS rows" +msgstr "N_ROWS ხაზის გამოყენება" + +#: ../libwnck/test-pager.c:15 +msgid "N_ROWS" +msgstr "N_ROWS" + +#: ../libwnck/test-pager.c:16 +msgid "Only show current workspace" +msgstr "მხოლოდ მიმდინარე გარემოს ჩვენება" + +#: ../libwnck/test-pager.c:17 ../libwnck/test-tasklist.c:19 +msgid "Use RTL as default direction" +msgstr "მარჯვნიდან მარცხნივ მიმართულების ნაგულისმევად გამოყენება" + +#: ../libwnck/test-pager.c:18 +msgid "Show workspace names instead of workspace contents" +msgstr "" +"გარემოში გაშვებული პროგრამების მაგივრად სამუშაო გარემოთა სახელწოდებების " +"ჩვენება" + +#: ../libwnck/test-pager.c:19 +msgid "Use a vertical orientation" +msgstr "ვერტიკალური ორიენტაციის გამოყენება" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/test-selector.c:12 ../libwnck/test-tasklist.c:20 +msgid "Don't show window in tasklist" +msgstr "ფანრის ფანჯრების სიაში არ გამოჩენა" + +#: ../libwnck/test-tasklist.c:16 +msgid "Always group windows" +msgstr "ფანჯრების დაჯგუფება ყოველთვის" + +#: ../libwnck/test-tasklist.c:17 +msgid "Never group windows" +msgstr "ფანჯრების არასდროს დაჯგუფება" + +#: ../libwnck/test-tasklist.c:18 +msgid "Display windows from all workspaces" +msgstr "ყველა გარემოდან ფანჯრების ჩვენება" + +#: ../libwnck/test-tasklist.c:21 +msgid "Enable Transparency" +msgstr "გამჭვირვალე ეფექტის ჩართვა" + +#: ../libwnck/window-action-menu.c:387 +msgid "Unmi_nimize" +msgstr "გ_აშლა" + +#: ../libwnck/window-action-menu.c:394 +msgid "Mi_nimize" +msgstr "მი_ნიმიზირება" + +#: ../libwnck/window-action-menu.c:402 +msgid "Unma_ximize" +msgstr "თავდა_პირველი ზომის დაბრუნება" + +#: ../libwnck/window-action-menu.c:409 +msgid "Ma_ximize" +msgstr "მთელს ეკრანზე გაფართო_ება" + +#: ../libwnck/window-action-menu.c:752 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "სამუშაო გარემო %d" + +#: ../libwnck/window-action-menu.c:761 ../libwnck/window-action-menu.c:907 +#, c-format +msgid "Workspace 1_0" +msgstr "სამუშაო გარემო 1_0" + +#: ../libwnck/window-action-menu.c:763 ../libwnck/window-action-menu.c:909 +#, c-format +msgid "Workspace %s%d" +msgstr "სამუშაო გარემო %s%d" + +#: ../libwnck/window-action-menu.c:995 +msgid "_Move" +msgstr "_გადაადგილება" + +#: ../libwnck/window-action-menu.c:1002 +msgid "_Resize" +msgstr "_ზომის შეცვლა" + +#: ../libwnck/window-action-menu.c:1011 +msgid "Always On _Top" +msgstr "ყოველთვის წინა _პლანზე" + +#: ../libwnck/window-action-menu.c:1019 +msgid "_Always on Visible Workspace" +msgstr "ყოვ_ელთვის ხილულ გარემოში ჩვენება" + +#: ../libwnck/window-action-menu.c:1024 +msgid "_Only on This Workspace" +msgstr "_მხოლოდ მიმდინარე გარემოში" + +#: ../libwnck/window-action-menu.c:1031 +msgid "Move to Workspace _Left" +msgstr "_მარცხენა გარემოში გადატანა" + +#: ../libwnck/window-action-menu.c:1037 +msgid "Move to Workspace R_ight" +msgstr "მარჯვენა გარემოშ_ი გადატანა" + +#: ../libwnck/window-action-menu.c:1043 +msgid "Move to Workspace _Up" +msgstr "ზემ_ო·გარემოში·გადატანა" + +#: ../libwnck/window-action-menu.c:1049 +msgid "Move to Workspace _Down" +msgstr "ქვემო გარემოში გა_დატანა" + +#: ../libwnck/window-action-menu.c:1052 +msgid "Move to Another _Workspace" +msgstr "სხვა გარემოში გადა_ტანა" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Close" +msgstr "_დახურვა" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "უსახელო ფანჯარა" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "X სერვერის ფანჯრის იდენტიფიკატორი, შემოწმება შეცვლისათვის" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "X სერვერის მთავარი ფანჯრის იდენტიფიკატორი, შემოწმება შეცვლისათვის" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "შესამოწმებელი კლასის ან ჯგუფტა კლასის რესურსი" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "კლასი" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "შესამოწმებელი ან შესაცვლელი სამუშაო გარემოთა რიცხვი" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:169 ../libwnck/wnckprop.c:171 +#: ../libwnck/wnckprop.c:173 ../libwnck/wnckprop.c:262 +msgid "NUMBER" +msgstr "რიცხვი" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "შესამოწმებელი ან შესაცვლელი ეკრანთა რიცხვი" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "იგივეა რაც --window" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:161 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:163 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:169 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "ეკრანზე სამუშაო გარემოთა რიცხვის შეცვლა " + +#: ../libwnck/wnckprop.c:171 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:175 +msgid "Show the desktop" +msgstr "სამუშაო მაგიდის ჩვენება" + +#: ../libwnck/wnckprop.c:177 +msgid "Stop showing the desktop" +msgstr "სამუშაო მაგიდის ჩვენების შეწყვეტა" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:181 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" +"სამუშაო მაგიდის ხილული არის X-ის ჰორიზონტალურ კოორდინატთან გადაადგილება" + +#: ../libwnck/wnckprop.c:181 ../libwnck/wnckprop.c:264 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "სამუშაო მაგიდის ხილული არის Y-ის ვერტიკალურ კოორდინატთან გადაადგილება" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:266 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:191 +msgid "Minimize the window" +msgstr "ფანჯრის მინიმიზირება" + +#: ../libwnck/wnckprop.c:193 +msgid "Unminimize the window" +msgstr "ფანჯრის გაშლა" + +#: ../libwnck/wnckprop.c:195 +msgid "Maximize the window" +msgstr "მთელს ეკრანზე გაშლა" + +#: ../libwnck/wnckprop.c:197 +msgid "Unmaximize the window" +msgstr "ფანჯრის თავდაპირველი ზომა" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize horizontally the window" +msgstr "ფანჯრის ჰორიზონტალურად გაშლა" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize horizontally the window" +msgstr "ფანჯრის თავდაპირველი ჰორიზონტალური ზომის აღდგენა" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize vertically the window" +msgstr "ფანჯრის ვერტიკალურად გაშლა" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize vertically the window" +msgstr "ფანჯრის თავდაპირველი ვერტიკალური ზომის აღდგენა" + +#: ../libwnck/wnckprop.c:207 +msgid "Start moving the window via the keyboard" +msgstr "ფანჯრის კლავიატურის მეშვეობით გადაადგილება" + +#: ../libwnck/wnckprop.c:209 +msgid "Start resizing the window via the keyboard" +msgstr "ფანჯრის ზომის კლავიატურის მეშვეობით შეცვლა" + +#: ../libwnck/wnckprop.c:211 +msgid "Activate the window" +msgstr "ფანჯრის გააქტიურება" + +#: ../libwnck/wnckprop.c:213 +msgid "Close the window" +msgstr "ფანჯრის დახურვა" + +#: ../libwnck/wnckprop.c:216 +msgid "Make the window fullscreen" +msgstr "ფანჯრის 'მთელს ეკრანზე' რეჟიმში გადაყვანა" + +#: ../libwnck/wnckprop.c:218 +msgid "Make the window quit fullscreen mode" +msgstr "'მთელს ეკრანზე' რეჟიმიდან გამოსვლა" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window always on top" +msgstr "ფანჯრის ყოველთვის წინა პლანზე გამოჩენა" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window not always on top" +msgstr "ფანჯრის წინაპლანზე არასოდეს გამოჩენა" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window below other windows" +msgstr "ფანჯრის დანარჩენებს ქვეშ ჩვენება" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not below other windows" +msgstr "ფანრის დანარჩენებს ქვეშ ჩვენების გაუქმება" + +#: ../libwnck/wnckprop.c:228 +msgid "Shade the window" +msgstr "ფანჯარა ჩარჩოში" + +#: ../libwnck/wnckprop.c:230 +msgid "Unshade the window" +msgstr "ფანჯრის ჩარჩოს მოშორება" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:234 +msgid "Make the window have a fixed position in the viewport" +msgstr "ხილულ გარემოში ფანჯრის მდებარეობის დაფიქსირება" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window not have a fixed position in the viewport" +msgstr "ხილულ გარემოში ფანჯრის მდებარეობის ფიქსირების გაუქმება" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not appear in pagers" +msgstr "ფანჯრის სამუშაო გარემოს გადამრთველში არ გამოჩენა" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:250 +msgid "Make the window appear in pagers" +msgstr "ფანჯრის სამუშაო გარემოს გადამრთველში გამოჩენა" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:253 +msgid "Make the window not appear in tasklists" +msgstr "ფანჯრების სიაში ფანჯრის დამალვა" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:256 +msgid "Make the window appear in tasklists" +msgstr "ფანჯრების სიაში ფანჯრის ჩვენება" + +#: ../libwnck/wnckprop.c:258 +msgid "Make the window visible on all workspaces" +msgstr "ფანჯრის ყველა სამუშაო გარემოში ჩვენება" + +#: ../libwnck/wnckprop.c:260 +msgid "Make the window visible on the current workspace only" +msgstr "ფანჯრის მხოლოდ მიმდინარე სამუშაო გარემოში ჩვენება" + +#: ../libwnck/wnckprop.c:262 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "ფანჯრის გადაადგილება სამუშაო გარემო ნომერი (პირველი სამუშაო გარემოა 0)" + +#: ../libwnck/wnckprop.c:264 +msgid "Change the X coordinate of the window to X" +msgstr "ფანჯრის X კოორდინატის შეცვლა X-ზე" + +#: ../libwnck/wnckprop.c:266 +msgid "Change the Y coordinate of the window to Y" +msgstr "ფანჯრის Y კოორდინატის შეცვლა Y-ზე" + +#: ../libwnck/wnckprop.c:268 +msgid "Change the width of the window to WIDTH" +msgstr "ფანჯრის სიგანის შეცვლა სიგანე" + +#: ../libwnck/wnckprop.c:268 +msgid "WIDTH" +msgstr "სიგანე" + +#: ../libwnck/wnckprop.c:270 +msgid "Change the height of the window to HEIGHT" +msgstr "ფანჯრის სიმაღლის შეცვლა სიმაღლე" + +#: ../libwnck/wnckprop.c:270 +msgid "HEIGHT" +msgstr "სიმაღლე" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:273 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"ფანჯრის ტიპის შეცვლა ტიპზე (შესაძლებელი მნიშვნელობები: normal, desktop, " +"dock, dialog, toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:273 +msgid "TYPE" +msgstr "ტიპი" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the name of the workspace to NAME" +msgstr "სამუშაო გარემოს სახელის შეცვლა სახელით" + +#: ../libwnck/wnckprop.c:279 +msgid "NAME" +msgstr "სახელი" + +#: ../libwnck/wnckprop.c:281 +msgid "Activate the workspace" +msgstr "სამუშაო გარემოს გააქტიურება" + +#: ../libwnck/wnckprop.c:373 ../libwnck/wnckprop.c:397 +#: ../libwnck/wnckprop.c:433 ../libwnck/wnckprop.c:456 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "მიუღებელი მნიშვნელობა \"%s\" --%s-თვის" + +#: ../libwnck/wnckprop.c:490 ../libwnck/wnckprop.c:509 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"გამოიყენება მიუღებელი პარამეტრი, მითითებულია ეკრანი %d, მაგრამ გამოიყენება --" +"%s\n" + +#: ../libwnck/wnckprop.c:499 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:522 ../libwnck/wnckprop.c:542 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:532 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:564 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:588 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:600 ../libwnck/wnckprop.c:609 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:628 ../libwnck/wnckprop.c:709 +#: ../libwnck/wnckprop.c:756 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "მოცემულია მიუღებელი პარამეტრები: --%s და --%s\n" + +#: ../libwnck/wnckprop.c:667 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:775 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:807 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:850 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:884 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:890 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:926 ../libwnck/wnckprop.c:935 +#: ../libwnck/wnckprop.c:944 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:1026 +#, c-format +msgid "Action not allowed\n" +msgstr "დაუშვებელი ქმედება\n" + +#: ../libwnck/wnckprop.c:1022 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"შეუძლებელია ფანჯრის სამუშაო გარემო %d-ზე გადატანა: არ არსებული სამუშაო " +"გარემო\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1086 ../libwnck/wnckprop.c:1217 +msgid "" +msgstr "<განუსაზღვრელი სახელწოდება>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1089 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1109 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1172 +#, c-format +msgid "Screen Number: %d\n" +msgstr "ეკრანის ნომერი: %d\n" + +#: ../libwnck/wnckprop.c:1174 ../libwnck/wnckprop.c:1253 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ზომები (სიგანე, სიმაღლე): %d, %d\n" + +#: ../libwnck/wnckprop.c:1178 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "სამუშაო გარემოებების რაოდენობა: %d\n" + +#: ../libwnck/wnckprop.c:1184 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "სამუშაო გარემოებების განლაგება (რიგი, სვეტი, ორიენტაცია): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1194 ../libwnck/wnckprop.c:1249 +#: ../libwnck/wnckprop.c:1435 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Window Manager: %s\n" +msgstr "ფანჯრების მმართველი: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1200 ../libwnck/wnckprop.c:1277 +#: ../libwnck/wnckprop.c:1288 ../libwnck/wnckprop.c:1299 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1421 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#: ../libwnck/wnckprop.c:1204 ../libwnck/wnckprop.c:1225 +#: ../libwnck/wnckprop.c:1281 ../libwnck/wnckprop.c:1292 +#: ../libwnck/wnckprop.c:1303 ../libwnck/wnckprop.c:1314 +#: ../libwnck/wnckprop.c:1376 ../libwnck/wnckprop.c:1427 +msgid "none" +msgstr "არა" + +#: ../libwnck/wnckprop.c:1205 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "აქტიური სამუშაო გარემო: %s\n" + +#: ../libwnck/wnckprop.c:1214 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1220 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#: ../libwnck/wnckprop.c:1226 +#, c-format +msgid "Active Window: %s\n" +msgstr "აქტიური ფანჯარა: %s\n" + +#: ../libwnck/wnckprop.c:1229 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "სამუშაო მაგიდის გამოჩენა: %s\n" + +#: ../libwnck/wnckprop.c:1231 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1231 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1242 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "სამუშაო გარემოს სახელწოდება: %s\n" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "სამუშაო გარემოებების რაოდენობა: %d\n" + +#: ../libwnck/wnckprop.c:1250 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "ეკრანზე: %d (ფანჯრების მმართველი: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1264 +msgid "" +msgstr "<არავითარი ხილული არე>" + +#. Translators: 'viewport' is kind of the viewable area. a viewport can be used to implement +#. a workspace (e.g. compiz is an example); however it is not just the current workspace. +#: ../libwnck/wnckprop.c:1267 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ხილული გარემოს მდებარეობა (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1282 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1293 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: Ressource class is the name to identify a class. +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Resource Class: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1329 +#, c-format +msgid "Group Name: %s\n" +msgstr "" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1335 ../libwnck/wnckprop.c:1359 +#: ../libwnck/wnckprop.c:1412 +msgid "set" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1362 +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1398 +#: ../libwnck/wnckprop.c:1405 ../libwnck/wnckprop.c:1415 +#: ../libwnck/wnckprop.c:1479 ../libwnck/wnckprop.c:1489 +#: ../libwnck/wnckprop.c:1497 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1363 +#: ../libwnck/wnckprop.c:1416 +#, c-format +msgid "Icons: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1342 ../libwnck/wnckprop.c:1379 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1354 ../libwnck/wnckprop.c:1399 +#, c-format +msgid "Name: %s\n" +msgstr "" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1355 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Icon Name: %s\n" +msgstr "ხატულას სახელი: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1490 +#, c-format +msgid "PID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1377 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1425 +msgid "all workspaces" +msgstr "ყველა სამუშაო გარემოში" + +#: ../libwnck/wnckprop.c:1428 +#, c-format +msgid "On Workspace: %s\n" +msgstr "სამუშაო გარემოში: %s\n" + +#: ../libwnck/wnckprop.c:1443 +msgid "normal window" +msgstr "ნორმალური ფანჯარა" + +#: ../libwnck/wnckprop.c:1446 +msgid "desktop" +msgstr "" + +#: ../libwnck/wnckprop.c:1449 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1452 +msgid "dialog window" +msgstr "დიალოგ ფანჯარა" + +#: ../libwnck/wnckprop.c:1455 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1458 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1461 +msgid "utility window" +msgstr "ხელსაწყოთა ფანჯარა" + +#: ../libwnck/wnckprop.c:1464 +msgid "splash screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1469 +#, c-format +msgid "Window Type: %s\n" +msgstr "ფანჯრის ტიპი: %s\n" + +#: ../libwnck/wnckprop.c:1472 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1481 +#, c-format +msgid "Class Group: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1483 +#, c-format +msgid "XID: %lu\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Session ID: %s\n" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one window +#. * has some information about the application (like the application name). +#: ../libwnck/wnckprop.c:1504 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's on top of it +#: ../libwnck/wnckprop.c:1509 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1524 ../libwnck/wnckprop.c:1571 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1573 +msgid ", " +msgstr "" + +#: ../libwnck/wnckprop.c:1534 +msgid "minimized" +msgstr "მინიმიზირებული" + +#: ../libwnck/wnckprop.c:1535 +msgid "maximized" +msgstr "გაფართოებული" + +#: ../libwnck/wnckprop.c:1539 +msgid "maximized horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1541 +msgid "maximized vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1543 +msgid "shaded" +msgstr "" + +#: ../libwnck/wnckprop.c:1544 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1545 +msgid "sticky" +msgstr "" + +#: ../libwnck/wnckprop.c:1546 +msgid "above" +msgstr "ზემოთ" + +#: ../libwnck/wnckprop.c:1547 +msgid "below" +msgstr "" + +#: ../libwnck/wnckprop.c:1548 +msgid "fullscreen" +msgstr "" + +#: ../libwnck/wnckprop.c:1549 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1554 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window list) +#: ../libwnck/wnckprop.c:1556 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1558 +msgid "normal" +msgstr "" + +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "State: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1580 +msgid "move" +msgstr "გადაადგილება" + +#: ../libwnck/wnckprop.c:1581 +msgid "resize" +msgstr "ზომის შეცვლა" + +#: ../libwnck/wnckprop.c:1582 +msgid "shade" +msgstr "" + +#: ../libwnck/wnckprop.c:1583 +msgid "unshade" +msgstr "" + +#: ../libwnck/wnckprop.c:1584 +msgid "stick" +msgstr "მიწებება" + +#: ../libwnck/wnckprop.c:1585 +msgid "unstick" +msgstr "" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximize horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1589 +msgid "unmaximize horizontally" +msgstr "თავდაპირველი ზომა ჰორიზონტალურად" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximize vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1593 +msgid "unmaximize vertically" +msgstr "თავდაპირველი ზომა ვერტიკალურად" + +#: ../libwnck/wnckprop.c:1596 +msgid "change workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1598 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1600 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1601 +msgid "minimize" +msgstr "მინიმიზირება" + +#: ../libwnck/wnckprop.c:1602 +msgid "unminimize" +msgstr "გაშლა" + +#: ../libwnck/wnckprop.c:1603 +msgid "maximize" +msgstr "გაფართოება" + +#: ../libwnck/wnckprop.c:1604 +msgid "unmaximize" +msgstr "თავდაპირველი ზომის დაბრუნება" + +#: ../libwnck/wnckprop.c:1606 +msgid "change fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:1607 +msgid "close" +msgstr "დახურვა" + +#: ../libwnck/wnckprop.c:1609 +msgid "make above" +msgstr "" + +#: ../libwnck/wnckprop.c:1611 +msgid "unmake above" +msgstr "" + +#: ../libwnck/wnckprop.c:1613 +msgid "make below" +msgstr "" + +#: ../libwnck/wnckprop.c:1615 +msgid "unmake below" +msgstr "" + +#: ../libwnck/wnckprop.c:1617 +msgid "no action possible" +msgstr "" + +#: ../libwnck/wnckprop.c:1618 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1795 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1805 +msgid "Options to list windows or workspaces" +msgstr "პარამეტრები ფანჯრების ან სამუშაო მაგიდების სიის სანახავად" + +#: ../libwnck/wnckprop.c:1806 +msgid "Show options to list windows or workspaces" +msgstr "პარამეტრების ჩვენება ფანჯრების ან სამუშაო მაგიდების სიის სანახავად" + +#: ../libwnck/wnckprop.c:1812 +msgid "Options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1813 +msgid "Show options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1819 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1820 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1826 +msgid "Options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1827 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1837 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1860 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1916 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the same class. +#: ../libwnck/wnckprop.c:1939 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1962 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1985 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" diff --git a/po/kk.gmo b/po/kk.gmo new file mode 100644 index 0000000..e140389 Binary files /dev/null and b/po/kk.gmo differ diff --git a/po/kk.po b/po/kk.po new file mode 100644 index 0000000..85d0817 --- /dev/null +++ b/po/kk.po @@ -0,0 +1,1217 @@ +# Kazakh translation for libwnck. +# Copyright (C) 2010 libwnck's COPYRIGHT HOLDER +# This file is distributed under the same license as the libwnck package. +# Baurzhan Muftakhidinov , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck master\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-03-07 12:19+0000\n" +"PO-Revision-Date: 2017-03-12 21:41+0500\n" +"Last-Translator: Baurzhan Muftakhidinov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 1.8.12\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Атаусыз қолданба" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Жұмыс орын ауыстырғышы" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Жұмыс орындары арасында ауысу сайманы" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "%s жұмыс орнына ауысу үшін шертіңіз" + +#: ../libwnck/pager.c:2149 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" тартып апару үшін шертіңіз" + +#: ../libwnck/pager.c:2152 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Ағымдағы жұмыс орны: \"%s\"" + +#: ../libwnck/pager.c:2157 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\" ауысу үшін шертіңіз" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "Ашық терезелер жоқ" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "Терезелерді таңдау" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "Терезелер арасында ауысу сайманы" + +#: ../libwnck/tasklist.c:601 +msgid "Window List" +msgstr "Терезелер тізімі" + +#: ../libwnck/tasklist.c:602 +msgid "Tool to switch between visible windows" +msgstr "Көрінетін терезелер арасында ауысу сайманы" + +#: ../libwnck/tasklist.c:2988 +msgid "Mi_nimize All" +msgstr "Барл_ығын қайыру" + +#: ../libwnck/tasklist.c:2996 +msgid "Un_minimize All" +msgstr "Барлығы_н қайырудан қайтару" + +#: ../libwnck/tasklist.c:3004 +msgid "Ma_ximize All" +msgstr "Бар_лығын жазық қылу" + +#: ../libwnck/tasklist.c:3012 +msgid "_Unmaximize All" +msgstr "Барлығын _жазық емес қылу" + +#: ../libwnck/tasklist.c:3024 +msgid "_Close All" +msgstr "Ба_рлығын жабу" + +#: ../libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "Қа_йырудан қайтару" + +#: ../libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "Қа_йыру" + +#: ../libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "Жа_зық емес қылу" + +#: ../libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "Ж_азық қылу" + +#: ../libwnck/window-action-menu.c:693 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "%d-жұмыс орны" + +#: ../libwnck/window-action-menu.c:702 ../libwnck/window-action-menu.c:848 +#, c-format +msgid "Workspace 1_0" +msgstr "Жұмыс орны 1_0" + +#: ../libwnck/window-action-menu.c:704 ../libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "%s%d-жұмыс орны" + +#: ../libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "Жы_лжыту" + +#: ../libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "Ө_лшемін өзгерту" + +#: ../libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "Әрқа_шан үстінде" + +#: ../libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "Әрқашан кө_рініп тұрған жұмыс орнында" + +#: ../libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "Тек ос_ы жұмыс орнында" + +#: ../libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "_Сол жақтағы жұмыс орнына ауыстыру" + +#: ../libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "Оң _жақтағы жұмыс орнына ауыстыру" + +#: ../libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "Жоға_рыдағы жұмыс орнына ауыстыру" + +#: ../libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "Тө_мендегі жұмыс орнына ауыстыру" + +#: ../libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "Басқа жұмыс орнына ау_ыстыру" + +#: ../libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "_Жабу" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Атаусыз терезе" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Жұмыс үстелін көрсету" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Терезені қайыру" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Терезені қайырудан қайтару" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Терезені жазық қылу" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Терезені жазық емес қылу" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Терезені енінен жазық қылу" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Терезені биіктігінен жазық қылу" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Терезені белсендіру" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Терезені жабу" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Терезені толық экранға қылу" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Терезені атау жолағына жинау" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Жұмыс орындар саны: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Терезелер басқарушы: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "жоқ" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "жоқ" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Белсенді терезе: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "true" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "false" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Жұмыс орны аты: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Класс тобының ID-і: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Класс тобының аты: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Таңбашалар: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Аты: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Таңбаша аты: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "жоқ" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "жұмыс үстелі" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +msgid "Role: %s\n" +msgstr "Ролі: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr "" + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "қайырылған" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "жабысқақ" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "толық экранға" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "қалыпты" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Күйі: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "жылжыту" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "өлшемін өзгерту" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "атау жолағына жинау" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "жабыстыру" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "максималды қылу" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "жабу" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1866 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to list windows or workspaces" +msgstr "" + +#: ../libwnck/wnckprop.c:1884 +msgid "Options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1885 +msgid "Show options to modify properties of a window" +msgstr "" + +#: ../libwnck/wnckprop.c:1892 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1893 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: ../libwnck/wnckprop.c:1900 +msgid "Options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1901 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: ../libwnck/wnckprop.c:1912 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1935 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2015 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2038 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: ../libwnck/wnckprop.c:2061 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "Тек ағымдағы жұмыс орнын көрсету" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "Жұмыс орындарының құрамасы орнына атауларын көрсету" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "Терезені тапсырмалар тізімінде көрсету" + +#~ msgid "Always group windows" +#~ msgstr "Терезелерді әрқашан топтау" + +#~ msgid "Never group windows" +#~ msgstr "Терезелерді ешқашан топтамау" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "Барлық жұмыс орындарынан терезелерді көрсету" + +#~ msgid "Enable Transparency" +#~ msgstr "Мөлдірлікті іске қосу" diff --git a/po/km.gmo b/po/km.gmo new file mode 100644 index 0000000..b2072ee Binary files /dev/null and b/po/km.gmo differ diff --git a/po/km.po b/po/km.po new file mode 100644 index 0000000..71c4685 --- /dev/null +++ b/po/km.po @@ -0,0 +1,1206 @@ +# translation of po_libwnck-3.0-km.po to Khmer +# Khmer translation for libwnck3 +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the libwnck3 package. +# +# FIRST AUTHOR , 2012. +# Khoem Sokhem , 2012. +msgid "" +msgstr "" +"Project-Id-Version: po_libwnck-3.0-km\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2012-09-22 15:50+0000\n" +"PO-Revision-Date: 2012-04-10 08:06+0000\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: Khmer \n" +"Language: km\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-09-03 23:40+0000\n" +"X-Generator: Launchpad (build 15890)\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "កម្មវិធី​គ្មាន​ចំណងជើង" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "កម្មវិធី​ប្ដូរ​តំបន់​ធ្វើការ" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "ឧបករណ៍​ត្រូវ​ប្ដូរ​រវាង​តំបន់​ធ្វើការ" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "ចុច​វា ដើម្បី​ប្ដូរ​ទៅ​តំបន់​ធ្វើការ %s" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "ចុច ដើម្បី​ចាប់ផ្ដើម​អូស \"%s\"" + +#: ../libwnck/pager.c:2206 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "តំបន់​ធ្វើការ​បច្ចុប្បន្ន ៖ \"%s\"" + +#: ../libwnck/pager.c:2211 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "ចុច ដើម្បី​ប្ដូរ​ទៅ \"%s\"" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "គ្មាន​បង្អួច​​បើក" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "កម្មវិធី​ជ្រើស​បង្អួច" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "ឧបករណ៍​ត្រូវ​ប្ដូរ​រវាង​បង្អួច" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "បញ្ជី​បង្អួច" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "ឧបករណ៍​ត្រូវ​ប្ដូរ​​រវាង​បង្អួច​ដែល​មើល​ឃើញ" + +#: ../libwnck/tasklist.c:2909 +msgid "Mi_nimize All" +msgstr "បង្រួម​អប្បបរមា​ទាំងអស់" + +#: ../libwnck/tasklist.c:2920 +msgid "Un_minimize All" +msgstr "មិន​បង្រួម​អប្បបរមា​ទាំងអស់" + +#: ../libwnck/tasklist.c:2928 +msgid "Ma_ximize All" +msgstr "ពង្រីក​អតិបរមា​ទាំងអស់" + +#: ../libwnck/tasklist.c:2939 +msgid "_Unmaximize All" +msgstr "មិន​ពង្រីក​អតិបរមា​ទាំងអស់" + +#: ../libwnck/tasklist.c:2951 +msgid "_Close All" +msgstr "បិទ​ទាំងអស់" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "មិន​បង្រួម​អប្បបរមា" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "បង្រួម​អប្បបរមា" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "មិន​ពង្រីក​អតិបរមា" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "ពង្រីក​អតិបរមា" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "តំបន់​ធ្វើការ %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "តំបន់​ធ្វើការ ១០" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "តំបន់​ធ្វើការ %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "ផ្លាស់ទី" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "ប្ដូរ​ទំហំ" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "នៅ​ខាងលើ​ជានិច្ច" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "នៅ​លើ​តំបន់​ធ្វើការ​ដែល​មើល​ឃើញ​ជានិច្ច" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "នៅ​តែ​លើ​តំបន់​ធ្វើការ​នេះ​ប៉ុណ្ណោះ" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "ផ្លាស់ទី​ទៅ​កាន់​​តំបន់​ធ្វើការ​នៅ​ខាងឆ្វេង" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "ផ្លាស់ទី​ទៅកាន់​តំបន់​ធ្វើការ​នៅ​ខាងស្ដាំ" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "ផ្លាស់ទី​ទៅកាន់​តំបន់​ធ្វើការ​នៅ​ខាងលើ" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "ផ្លាស់ទី​ទៅកាន់​តំបន់​ធ្វើការ​នៅ​ខាងក្រោម" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "ផ្លាស់ទី​ទៅកាន់​តំបន់​ធ្វើការ​ផ្សេងទៀត" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "បិទ" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "បង្អួច​គ្មាន​ចំណងជើង" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "លេខ​សម្គាល់​បង្អួច X នៃ​បង្អួច​ត្រូវ​ត្រួតពិនិត្យ ឬ​កែប្រែ" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "លេខ​សម្គាល់​បង្អួច X នៃ​បង្អួច​គ្រប់គ្រង​ក្រុម​កម្មវិធី​ដែល​ត្រូវ​ត្រួតពិនិត្យ" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "ធនធាន​ថ្នាក់​នៃ​ក្រុម​ថ្នាក់​ដែល​ត្រូវ​ត្រួតពិនិត្យ" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "ថ្នាក់" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ចំនួន​តំបន់​ធ្វើការ​ដែល​ត្រូវ​ត្រួតពិនិត្យ ឬ​កែប្រែ" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "លេខ" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "ចំនួន​អេក្រង់​ដែល​ត្រូវ​ត្រួតពិនិត្យ ឬ​កែប្រែ" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "ឈ្មោះ​ក្លែងក្លាយ​រ​បស់ --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"រាយ​បង្អួច​នៃ​កម្មវិធី/ក្រុម​ថ្នាក់/តំបន់​ធ្វើការ/អេក្រង់ (ទ្រង់ទ្រាយ​បង្ហាញ ៖ \"XID ៖ ឈ្មោះ​ប​ង្អួច\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "រាយ​តំបន់​ធ្វើការ​របស់​អេក្រង់ (ទ្រង់ទ្រាយ​បង្ហាញ ៖ \"ចំនួន ៖ ឈ្មោះ​តំបន់​ធ្វើការ\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "ផ្លាស់ប្ដូរ​ចំនួន​តំបន់​ធ្វើការ​របស់​អេក្រង់​ទៅជា​លេខ" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "ផ្លាស់ប្ដូរ​ប្លង់​តំបន់​ធ្វើការ​របស់​អេក្រង់ ដើម្បី​ប្រើ​ចំនួន​ជួរដេក" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "ផ្លាស់ប្ដូរ​ប្លង់​តំបន់​ធ្វើការ​របស់​អេក្រង់ ដើម្បី​ប្រើ​ចំនួន​ជួរឈរ" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "បង្ហាញ​ផ្ទៃតុ" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "បញ្ឈប់​ការ​បង្ហាញ​ផ្ទៃតុ" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "ផ្លាស់ទី​ច្រក​ទិដ្ឋភាព​នៃ​តំបន់​ធ្វើការ​បច្ចុប្បន្ន​ទៅ​កាន់​ X កូអរដោនេ X" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "ផ្លាស់ទី​ច្រក​ទិដ្ឋភាព​នៃ​តំបន់​ធ្វើការ​បច្ចុប្បន្ន​ទៅកាន់ Y កូអរដោនេ Y" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "បង្រួម​បង្អួច​អប្បបរមា" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "មិន​បង្រួម​បង្អួច​អប្បបរមា" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "ពង្រីក​បង្អួច​អតិបរមា" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "មិន​ពង្រីក​បង្អួច​អតិបរមា" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "ពង្រីក​បង្អួច​អតិបរមា​តាម​ផ្ដេក" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "មិន​ពង្រីក​បង្អួច​អតិបរមា​តាម​ផ្ដេក" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "ពង្រីក​បង្អួច​អតិបរមា​តាម​បញ្ឈរ" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "មិន​ពង្រីក​បង្អួច​អតិបរមា​តាម​បញ្ឈរ" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "ចាប់ផ្ដើម​ផ្លាស់ទី​បង្អួច​ដោយ​ប្រើ​ក្ដារចុច" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "ចាប់ផ្ដើម​ប្ដូរ​ទំហំ​បង្អួច​ដោយ​ប្រើ​ក្ដារចុច" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "ធ្វើឲ្យ​បង្អួច​សកម្ម" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "បិទ​បង្អួច" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "ធ្វើឲ្យ​បង្អួច​ពេញ​អេក្រង់" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "ធ្វើឲ្យ​បង្អួច​បោះបង់​របៀប​ពេញអេក្រង់" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "ធ្វើឲ្យ​បង្អួច​នៅ​ខាងលើ​ជានិច្ច" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "ធ្វើឲ្យ​បង្អួច​មិន​នៅ​ខាងលើ" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "ធ្វើឲ្យ​បង្អួច​នៅ​ខាងក្រោម​បង្អួច​ផ្សេងទៀត" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "ធ្វើឲ្យ​បង្អួច​មិន​នៅ​ក្រោម​បង្អួច​ផ្សេងទៀត" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "ដាក់​ស្រមោល​បង្អួច" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "ដោះ​ស្រមោល​បង្អួច" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "ធ្វើឲ្យ​បង្អួច​មាន​ទីតាំង​ថេរ​នៅ​ក្នុង​ច្រក​ទិដ្ឋភាព" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "ធ្វើឲ្យ​បង្អួច​មិន​មាន​ទីតាំង​ថេរ​នៅ​ក្នុង​ច្រក​ទិដ្ឋភាព" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "ធ្វើឲ្យ​បង្អួច​មិន​បង្ហាញ​នៅ​ក្នុង pagers" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "ធ្វើឲ្យ​បង្អួច​បង្ហាញ​នៅ​ក្នុង pagers" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "ធ្វើឲ្យ​បង្អួច​មិន​បង្ហាញ​នៅ​ក្នុង​​បញ្ជី​ភារកិច្ច" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "ធ្វើឲ្យ​បង្អួច​បង្ហាញ​នៅ​ក្នុង​បញ្ជី​ភារកិច្ច" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "ធ្វើឲ្យ​បង្អួច​អាច​មើល​ឃើញ​នៅ​លើ​តំបន់​ធ្វើការ​ទាំងអស់" + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "ធ្វើឲ្យ​បង្អួច​អាច​មើល​ឃើញ​តែ​នៅ​លើ​តំបន់​ធ្វើការ​បច្ចុប្បន្ន​ប៉ុណ្ណោះ" + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "ផ្លាស់ទី​បង្អួច​ទៅកាន់​ចំនួន​តំបន់​ធ្វើការ (តំបន់​ធ្វើការ​ដំបូងស្មើ ០)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "ផ្លាស់ប្ដូរ​កូអរដោនេ X នៃ​បង្អួច​ទៅជា X" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "ផ្លាស់ប្ដូរ​កូអរដោនេ Y នៃ​បង្អួច​ទៅជា Y" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "ផ្លាស់ប្ដូរ​ទទឹង​បង្អួច​ទៅជា​ទទឹង" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "ទទឹង" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "ផ្លាស់ប្ដូរ​កម្ពស់​បង្អួច​ទៅជា​កម្ពស់" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "កម្ពស់" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"ផ្លាស់ប្ដូរ​ប្រភេទ​បង្អួច​ទៅជា​ប្រភេទ (តម្លៃ​ត្រឹមត្រូវ​ ៖ normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "ប្រភេទ" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "ផ្លាស់ប្ដូរ​ឈ្មោះ​តំបន់​ធ្វើការ​ទៅជា​ឈ្មោះ" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "ឈ្មោះ" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "ធ្វើឲ្យ​តំបន់​ធ្វើការ​សកម្ម" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "តម្លៃ​មិន​ត្រឹមត្រូវ \"%s\" សម្រាប់ --%s" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ អេក្រង់ %d គួរតែ​ត្រូវ​បាន​ធ្វើ​អន្តរកម្ម​ជាមួយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ បង្អួច ឬ​តំបន់​ធ្វើការ​របស់​អេក្រង់ %d គួរតែ​ត្រូវ​បាន​រាយ ប៉ុន្តែ --%s ត្រូវ​បាន​" +"ប្រើ\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ តំបន់​ធ្វើការ %d គួរតែ​ត្រូវ​បាន​ធ្វើ​អន្តរកម្ម​ជាមួយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ បង្អួច​របស់​តំបន់​ធ្វើការ %d គួរតែ​ត្រូវ​បាន​រាយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "មាន​ជ្រើស​ប៉ះទង្គិច ៖ កម្មវិធី​គួរតែ​ត្រូវ​បាន​ធ្វើ​អន្តរកម្ម​ជាមួយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "មាន​ជម្រើស​ប៉ះទង្គិច ៖ បង្អួច​កម្មវិធី​គួរតែ​ត្រូវ​បាន​រាយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ ក្រុម​ថ្នាក់ \"%s\" គួរតែ​ត្រូវ​បាន​ធ្វើ​អន្តរកម្ម​ជាមួយ ប៉ុន្តែ --%s ត្រូវ​បាន​" +"ប្រើ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"មាន​ជម្រើស​ប៉ះទង្គិច ៖ បង្អួច​ក្រុម​ថ្នាក់ \"%s\" គួរតែ​ត្រូវ​បាន​រាយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "មាន​ជម្រើស​ប៉ះទង្គិច ៖ បង្អួច​គួរតែ​ត្រូវ​បាន​ធ្វើ​អន្តរកម្ម​ជាមួយ ប៉ុន្តែ --%s ត្រូវ​បាន​ប្រើ\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "មាន​ជម្រើស​ប៉ះទង្គិច ៖ --%s និង --%s\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "អាគុយម៉ង់​មិន​​ត្រឹមត្រូវ \"%d\" សម្រាប់ --%s ៖ អាគុយម៉ង់​ត្រូវ​តែ​វិជ្ជមាន\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "អាគុយម៉ង់​មិន​ត្រឹមត្រូវ \"%d\" សម្រាប់ --%s ៖ អាគុយម៉ង់​ត្រូវតែ​វិជ្ជមាន\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "មាន​ជម្រើស​ប៉ះទង្គិច ៖ --%s ឬ --%s និង --%s\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "អាគុយម៉ង់​មិន​ត្រឹមត្រូវ \"%s\" សម្រាប់ --%s តម្លៃ​ត្រឹមត្រូវ គឺ ៖ %s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "មិន​អាច​ផ្លាស់ប្ដូរ​ប្លង់​តំបន់​ធ្វើការ​នៅ​លើ​អេក្រង់​បាន​ឡើយ ៖ ប្លង់​មាន​រួចហើយ\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "មិន​អាច​ផ្លាស់ទី​ទិដ្ឋភាព​ច្រក​បាន​ទេ ៖ តំបន់​ធ្វើការ​បច្ចុប្បន្ន​មិន​មាន​ច្រក​ទិដ្ឋភាព\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "មិន​អាច​ផ្លាស់ទី​ច្រក​ទិដ្ឋភាព​បាន​ទេ ៖ គ្មាន​តំបន់​ធ្វើការ​បច្ចុប្បន្ន​ទេ\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "សកម្មភាព​មិន​ត្រូវ​បាន​អនុញ្ញាត\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "មិន​អាច​ផ្លាស់ទី​បង្អួច​ទៅកាន់​តំបន់​ធ្វើការ​បាន​ឡើយ %d ៖ មិន​មាន​តំបន់​ធ្វើការ​ទេ\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu ៖ %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d ៖ %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "ចំនួន​អេក្រង់ ៖ %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ធរណីមាត្រ (ទទឹង កម្ពស់) ៖ %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "ចំនួន​តំបន់​ធ្វើការ ៖ %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "ប្លង់​តំបន់​ធ្វើការ (ជួរដេក ជួរឈរ ទិស) ៖ %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "កម្មវិធី​គ្រប់គ្រង​បង្អួច ៖ %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "គ្មាន" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "តំបន់​ធ្វើការ​សកម្ម ៖ %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "គ្មាន" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "បង្អួច​សកម្ម ៖ %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "បង្ហាញ​ផ្ទៃតុ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "ពិត" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "មិនពិត" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "ឈ្មោះ​តំបន់​ធ្វើការ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "ចំនួន​តំបន់​ធ្វើការ ៖ %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "លើ​អេក្រង់ ៖ %d (កម្មវិធី​គ្រប់គ្រង​បង្អួច ៖ %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ទីតាំង​ច្រក​ទិដ្ឋភាព (x, y) ៖ %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "ទីតាំង​នៅ​ក្នុង​ប្លង់ (ជួរដេក ជួរឈរ) ៖ %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "ក្បែរ​ខាងឆ្វេង ៖ %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "ក្បែរ​ខាងស្ដាំ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "ក្បែរ​ខាងលើ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "ក្បែរ​ខាងក្រោម ៖ %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "លេខ​សម្គាល់​ក្រុម​ថ្នាក់ ៖ %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "ឈ្មោះ​ក្រុម​ថ្នាក់ ៖ %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "កំណត់" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "រូបតំណាង ៖ %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "ចំនួន​បង្អួច ៖ %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "ឈ្មោះ ៖ %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "ឈ្មោះ​រូបតំណាង ៖ %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID ៖ %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "គ្មាន" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "លេខ​សម្គាល់​ចាប់ផ្ដើម ៖ %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "តំបន់​ធ្វើការ​ទាំងអស់" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "នៅ​លើ​តំបន់ធ្វើការ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "បង្អួច​ធម្មតា" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "ផ្ទៃតុ" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "ចំណត ឬ​បន្ទះ" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "បង្អួច​ប្រអប់" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "របារ​ឧបករណ៍​ទាញចេញ" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "ម៉ឺនុយ​ទាញ​ចេញ" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "បង្អួច​ឧបករណ៍​ប្រើប្រាស់" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "អេក្រង់​ស្វាគមន៍" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "ប្រភេទ​បង្អួច ៖ %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ធរណីមាត្រ (x, y កម្ពស់ ទទឹង) ៖ %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "ធាតុ​ថ្នាក់ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID ៖ %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "លេខ​សម្គាល់​សម័យ ៖ %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "បង្អួច​គ្រប់គ្រងក្រុម ៖ %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "បណ្ដោះអាសន្ន​សម្រាប់ ៖ %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "បាន​បង្រួម​អប្បបរមា" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "បាន​ពង្រីក​អតិបរមា" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "បាន​ពង្រីក​អតិបរមា​តាម​ផ្ដេក" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "បាន​ពង្រីក​អតិបរមា​តាម​បញ្ឈរ" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "បាន​ដាក់​ស្រមោល" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "បាន​ខ្ទាស់" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "ស្អិត" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "ខាងលើ" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "ខាងក្រោម" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "ពេញ​អេក្រង់" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "ត្រូវ​ការ​យកចិត្ត​ទុកដាក់" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "រំលង pager" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "រំលង​បញ្ជី​ភារកិច្ច" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "ធម្មតា" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "ស្ថានភាព ៖ %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "ផ្លាស់ទី" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "ប្ដូរ​ទំហំ" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "ដាក់​ស្រមោល" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "ដោះ​ស្រមោល" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "ស្អិត" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "មិន​ស្អិត" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "ពង្រីក​អតិបរមា​តាម​ផ្ដេក" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "មិន​ពង្រីក​អតិបរមា​តាម​ផ្ដេក" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "ពង្រីក​អតិបរមា​តាម​បញ្ឈរ" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "មិន​ពង្រីក​អតិបរមា​តាម​បញ្ឈរ" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "ផ្លាស់ប្ដូរ​តំបន់​ធ្វើការ" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "ខ្ទាស់" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "ដោះ​ខ្ទាស់" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "បង្រួម​អប្បបរមា" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "មិន​បង្រួម​អប្បបរមា" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "ពង្រីក​អតិបរមា" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "មិន​ពង្រីក​អតិបរមា" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "ផ្លាស់ប្ដូរ​​របៀប​ពេញអេក្រង់" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "បិទ" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "ធ្វើឲ្យ​នៅ​ខាងលើ" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "មិន​ធ្វើឲ្យ​នៅ​ខាងលើ" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "ធ្វើឲ្យ​នៅ​ខាងក្រោម" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "មិន​ធ្វើឲ្យ​នៅ​ខាងក្រោម" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "មិន​អាច​មាន​សកម្មភាព" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "អាច​មានសកម្មភាព ៖ %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"បោះពុម្ព ឬ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​អេក្រង់/តំបន់​ធ្វើការ/បង្អួច ឬ​អន្តរកម្ម​ជាមួយ​វា ដោយ​អនុវត្ត​តាម​ការ​" +"បញ្ជាក់ EWMH ។\n" +"សម្រាប់​ព័ត៌មាន​អំពី​ការ​បញ្ជាក់​នេះ សូមមើល ៖\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "ជម្រើស​ត្រូវ​រាយ​បង្អួច ឬ​តំបន់​ធ្វើការ" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "បង្ហាញ​ជម្រើស​ត្រូវ​រាយ​បង្អួច ឬ​តំបន់​ធ្វើការ" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "ជម្រើស​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​បង្អួច" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "បង្ហាញ​ជម្រើស​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​បង្អួច" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "ជម្រើស​​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​តំបន់​ធ្វើការ" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "បង្ហាញ​ជម្រើស​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​តំបន់​ធ្វើការ" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "ជម្រើស​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​អេក្រង់" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "បង្ហាញ​ជម្រើស​ត្រូវ​កែប្រែ​លក្ខណសម្បត្តិ​របស់​អេក្រង់" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "កំហុស ខណៈ​ពេល​ញែក​អាគុយម៉ង់ ៖ %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "មិន​អាច​ធ្វើ​អន្តរកម្ម​ជាមួយ​អេក្រង់​បាន​ឡើយ %d ៖ មិន​មាន​អេក្រង់\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "មិន​អាច​ធ្វើ​អន្តរកម្ម​ជាមួយ​​តំបន់​ធ្វើការ​បាន​ឡើយ %d ៖ រក​មិន​ឃើញ​តំបន់​ធ្វើការ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "មិន​អាច​ធ្វើ​អន្តរកម្ម​ជាមួយ​ក្រុម​ថ្នាក់​បាន​ឡើយ \"%s\" ៖ រក​មិន​ឃើញ​ក្រុម​ថ្នាក់\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"មិន​អាច​ធ្វើ​អន្តរកម្ម​ជាមួយ​កម្មវិធី​ដែល​មាន​បង្អួច​គ្រប់គ្រង​ក្រុម​ដែល​​ប្រើ XID បាន​ឡើយ %lu ៖ រក​មិន​ឃើញ​" +"កម្មវិធី\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "មិន​អាច​ធ្វើ​អន្តរកម្ម​ជាមួយ​បង្អួច​ដែល​មាន XID បាន​ឡើយ %lu ៖ រក​មិន​ឃើញ​បង្អួច\n" diff --git a/po/kn.gmo b/po/kn.gmo new file mode 100644 index 0000000..fe278c1 Binary files /dev/null and b/po/kn.gmo differ diff --git a/po/kn.po b/po/kn.po new file mode 100644 index 0000000..72592bf --- /dev/null +++ b/po/kn.po @@ -0,0 +1,1286 @@ +# translation of libwnck.HEAD.kn.po to Kannada +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Shankar Prasad , 2008, 2009, 2010, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD.kn\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-02-06 00:53+0000\n" +"PO-Revision-Date: 2013-03-25 12:29+0530\n" +"Last-Translator: Shankar Prasad \n" +"Language-Team: Kannada \n" +"Language: kn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "ಶೀರ್ಷಿಕೆಯಿಲ್ಲದ ಅನ್ವಯ" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "ಕಾರ್ಯಸ್ಥಳ ಬದಲಾಯಿಸುವವ" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "ಕಾರ್ಯಸ್ಥಳಗಳ ನಡುವೆ ಬದಲಾಯಿಸುವವ ಸಲಕರಣೆ" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "ಕಾರ್ಯಸ್ಥಳ %s ಕ್ಕೆ ಬದಲಾಯಿಸಲು ಇದನ್ನು ಒತ್ತಿ" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\" ಅನ್ನು ಎಳೆಯುವುದನ್ನು ಆರಂಭಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "ಈಗಿನ ಕಾರ್ಯಸ್ಥಳ: \"%s\"" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "%s ಕ್ಕೆ ಬದಲಾಯಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "ಯಾವುದೆ ವಿಂಡೋಗಳು ತೆರೆಯಲಾಗಿಲ್ಲ" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "ವಿಂಡೋ ಆಯ್ಕೆಗಾರ" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "ವಿಂಡೋಗಳ ನಡುವೆ ಬದಲಾಯಿಸುವ ಸಲಕರಣೆ" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "ವಿಂಡೊ ಪಟ್ಟಿ" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "ಗೋಚರಿಸುವ ಕಾರ್ಯಸ್ಥಳಗಳ ನಡುವೆ ಬದಲಾಯಿಸುವ ಸಲಕರಣೆ" + +#: ../libwnck/tasklist.c:2914 +msgid "Mi_nimize All" +msgstr "ಎಲ್ಲವನ್ನೂ ಕುಗ್ಗಿಸು (_n)" + +#: ../libwnck/tasklist.c:2925 +msgid "Un_minimize All" +msgstr "ಕುಗ್ಗಿಸಲಾದ ಎಲ್ಲವನ್ನೂ ಹಿಗ್ಗಿಸು (_m)" + +#: ../libwnck/tasklist.c:2933 +msgid "Ma_ximize All" +msgstr "ಎಲ್ಲವನ್ನೂ ಹಿಗ್ಗಿಸು (_x)" + +#: ../libwnck/tasklist.c:2944 +msgid "_Unmaximize All" +msgstr "ಹಿಗ್ಗಿಸಲಾದ ಎಲ್ಲವನ್ನೂ ಕುಗ್ಗಿಸು (_U)" + +#: ../libwnck/tasklist.c:2956 +msgid "_Close All" +msgstr "ಎಲ್ಲವನ್ನು ಮುಚ್ಚು(_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "ಕುಗ್ಗಿಸಲಾದುದನ್ನು ಹಿಗ್ಗಿಸು (_n)" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "ಕುಗ್ಗಿಸು (_n)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "ಹಿಗ್ಗಿಸಲಾದುದನ್ನು ಕುಗ್ಗಿಸು (_x)" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "ಹಿಗ್ಗಿಸು (_x)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "ಕಾರ್ಯಸ್ಥಳ %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "ಕಾರ್ಯಸ್ಥಳ 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "ಕಾರ್ಯಸ್ಥಳ %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "ಜರಗಿಸು" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "ಗಾತ್ರ ಬದಲಾಯಿಸು" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "ಯಾವಾಗಲೂ ಮೇಲ್ಭಾಗದಲ್ಲಿ(_T)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "ಕೇವಲ ಗೋಚರಿಸುವ ಕಾರ್ಯಸ್ಥಳದಲ್ಲಿ ಮಾತ್ರ(_A)" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "ಕೇವಲ ಈ ಕಾರ್ಯಸ್ಥಳದಲ್ಲಿ ಮಾತ್ರ(_O)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "ಎಡಭಾಗದ ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಬದಲಾಯಿಸು(_L)" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "ಬಲಭಾಗದ ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಬದಲಾಯಿಸು(_i)" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "ಮೇಲ್ಭಾಗದ ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಬದಲಾಯಿಸು(_U)" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "ಕೆಳಭಾಗದ ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಬದಲಾಯಿಸು(_D)" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "ಬೇರೊಂದು ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ಸ್ಥಳಾಂತರಿಸು(_W)" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "ಮುಚ್ಚು(_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "ಶೀರ್ಷಿಕೆಯಿಲ್ಲದ ವಿಂಡೋ" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "ಪರಿಶೀಲಿಸಲು ಅಥವ ಮಾರ್ಪಡಿಸಲು X ವಿಂಡೋ ID" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "ಪರಿಶೀಲಿಸಲು ಒಂದು ಅನ್ವಯದ ಗುಂಪು ಮುಖ್ಯಸ್ಥನ X ವಿಂಡೋ ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "ಪರಿಶೀಲಿಸಲು ವರ್ಗ ಸಮೂಹದ ವರ್ಗ ಸಂಪನ್ಮೂಲ" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "CLASS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "ಪರಿಶೀಲಿಸಲು ಅಥವ ಮಾರ್ಪಡಿಸಲು ಕಾರ್ಯಸ್ಥಳದ ಸಂಖ್ಯೆ" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "NUMBER" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "ಪರಿಶೀಲಿಸಲು ಅಥವ ಮಾರ್ಪಡಿಸಲು ತೆರೆಯ NUMBER" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window ದ ಅಲಿಯಾಸ್‌ಗಳು" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"ಅನ್ವಯ/ವರ್ಗ ಸಮೂಹ/ಕಾರ್ಯಸ್ಥಳ/ತೆರೆಯ ಅನ್ವಯದ ವಿಂಡೋಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡು (ಉದ್ಧೇಶಿತ " +"ವಿನ್ಯಾಸ: " +"\"XID: ವಿಂಡೋ ಹೆಸರು\")" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"ಕಾರ್ಯಸ್ಥಳಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡು (ಉದ್ಧೇಶಿತ ವಿನ್ಯಾಸ: \"ಸಂಖ್ಯೆ: ಕಾರ್ಯಸ್ಥಳ ಹೆಸರು\")" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "ತೆರೆಯ ಕಾರ್ಯಸ್ಥಳಗಳ ಸಂಖ್ಯೆಯನ್ನು NUMBER ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "ತೆರೆಯ ಕಾರ್ಯಸ್ಥಳ ವಿನ್ಯಾಸವು NUMBER ಸಾಲುಗಳನ್ನು ಬಳಸುವಂತೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "ತೆರೆಯ ಕಾರ್ಯಸ್ಥಳ ವಿನ್ಯಾಸವು NUMBER ಕಾಲಂಗಳನ್ನು ಬಳಸುವಂತೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "ಗಣಕತೆರೆಯನ್ನು ತೋರಿಸು" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "ಗಣಕತೆರೆಯನ್ನು ತೋರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸು" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "ಪ್ರಸಕ್ತ ಕಾರ್ಯಸ್ಥಳದ ನೋಟಸ್ಥಾನ (ವೀವ್‌ಪೋರ್ಟ್) X ನಿರ್ದೇಶಾಂಕ X ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "ಪ್ರಸಕ್ತ ಕಾರ್ಯಸ್ಥಳದ ನೋಟಸ್ಥಾನ (ವೀವ್‌ಪೋರ್ಟ್) Y ನಿರ್ದೇಶಾಂಕ Y ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "ವಿಂಡೋವನ್ನು ಕಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "ಕಿರಿದಾಗಿಸಲಾದ ವಿಂಡೋವನ್ನು ಹಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "ವಿಂಡೋವನ್ನು ಹಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "ಹಿರಿದಾಗಿಸಲಾದ ವಿಂಡೋವನ್ನು ಕಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "ವಿಂಡೋವನ್ನು ಅಡ್ಡವಾಗಿ ಹಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "ಅಡ್ಡವಾಗಿ ಹಿರಿದಾಗಿಸಲಾದ ವಿಂಡೋವನ್ನು ಕಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "ವಿಂಡೋವನ್ನು ಲಂಬವಾಗಿ ಹಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "ಲಂಬವಾಗಿ ಕಿರಿದಾಗಿಸಲಾದ ವಿಂಡೋವನ್ನು ಹಿರಿದಾಗಿಸು" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "ಕೀಲಿಮಣೆಯ ಮೂಲಕ ವಿಂಡೋವನ್ನು ಸ್ಥಳಾಂತರಿಸಲು ಆರಂಭಿಸು" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "ಕೀಲಿಮಣೆಯ ಮೂಲಕ ವಿಂಡೋದ ಗಾತ್ರವನ್ನು ಬದಲಾಯಿಸಲು ಆರಂಭಿಸು" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "ವಿಂಡೋವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "ವಿಂಡೋವನ್ನು ಮುಚ್ಚು" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "ವಿಂಡೋ ಪೂರ್ಣತೆರೆಗೆ ಹಿಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "ವಿಂಡೋ ಪೂರ್ಣತೆರೆ ಕ್ರಮದಿಂದ ನಿರ್ಗಮಿಸುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "ವಿಂಡೋವನ್ನು ಯಾವಾಗಲೂ ಮೇಲ್ಭಾಗದಲ್ಲಿಯೆ ಇರುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "ವಿಂಡೋವನ್ನು ಯಾವಾಗಲೂ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಇರದಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "ವಿಂಡೋವನ್ನು ಇತರೆ ವಿಂಡೋಗಳ ಅಡಿಯಲ್ಲಿ ಇರುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "ವಿಂಡೋವನ್ನು ಇತರೆ ವಿಂಡೋಗಳ ಅಡಿಯಲ್ಲಿ ಇರದಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "ವಿಂಡೋವನ್ನು ಮಬ್ಬಾಗಿಸು" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "ಮಬ್ಬಾದ ವಿಂಡೋವನ್ನು ತಿಳಿಗೊಳಿಸು" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "ನೋಟಸ್ಥಾನದಲ್ಲಿ ವಿಂಡೋ ನಿಗದಿತ ಸ್ಥಾನವನ್ನು ಹೊಂದುವಂತೆ ಮಾಡು" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "ನೋಟಸ್ಥಾನದಲ್ಲಿ ವಿಂಡೋ ನಿಗದಿತ ಸ್ಥಾನವನ್ನು ಹೊಂದದಿರುವಂತೆ ಮಾಡು" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "ಪೇಜರುಗಳಲ್ಲಿ ವಿಂಡೋ ಕಾಣದಂತೆ ಮಾಡು" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "ಪೇಜರುಗಳಲ್ಲಿ ವಿಂಡೋ ಕಾಣುವಂತೆ ಮಾಡು" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "ಪೇಜರುಗಳಲ್ಲಿ ಕಾರ್ಯಪಟ್ಟಿಗಳು ಕಾಣದಂತೆ ಮಾಡು" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "ಪೇಜರುಗಳಲ್ಲಿ ಕಾರ್ಯಪಟ್ಟಿಗಳು ಕಾಣುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "ಎಲ್ಲಾ ಕಾರ್ಯಸ್ಥಳಗಳಲ್ಲಿ ವಿಂಡೋ ಕಾಣಿಸುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "ಕೇವಲ ಈ ಕಾರ್ಯಸ್ಥಳದಲ್ಲಿ ಮಾತ್ರ ವಿಂಡೋ ಕಾಣಿಸುವಂತೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "ವಿಂಡೋ ಅನ್ನು ಕಾರ್ಯಸ್ಥಳದ NUMBER ಗೆ ಜರುಗಿಸು (ಮೊದಲ ಕಾರ್ಯಸ್ಥಳ 0 ಆಗಿರುತ್ತದೆ)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "ವಿಂಡೋವಿನ X ನಿರ್ದೇಶಾಂಕವನ್ನು X ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "ವಿಂಡೋವಿನ Y ನಿರ್ದೇಶಾಂಕವನ್ನು Y ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "ವಿಂಡೋವಿನ ಅಗಲವನ್ನು WIDTH ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "WIDTH" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "ವಿಂಡೋವಿನ ಎತ್ತರವನ್ನು HEIGHT ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "HEIGHT" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"ವಿಂಡೋ ಬಗೆಯನ್ನು TYPE ಗೆ ಬದಲಾಯಿಸು (ಮಾನ್ಯವಾದ ಮೌಲ್ಯಗಳೆಂದರೆ: ಸಾಮಾನ್ಯ, ಗಣಕತೆರೆ, " +"ಡಾಕ್, " +"ಸಂವಾದ, ಉಪಕರಣಪಟ್ಟಿ, ಮೆನು, ಸವಲತ್ತು, ಸ್ಪ್ಲಾಶ್)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TYPE" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "ಕಾರ್ಯಸ್ಥಳದ ಹೆಸರನ್ನು NAME ಗೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NAME" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "ಕಾರ್ಯಸ್ಥಳವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸು" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "ಅಮಾನ್ಯವಾದ ಮೌಲ್ಯ \"%s\" --%s ಗಾಗಿ" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ತೆರೆ %d ರೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಿತ್ತು, ಆದರೆ --%s " +"ಅನ್ನು " +"ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ತೆರೆ %d ರ ವಿಂಡೋಗಳ ಅಥವ ಕಾರ್ಯಸ್ಥಳಗಳ ಪಟ್ಟಿ " +"ಮಾಡಬೇಕಿತ್ತು, ಆದರೆ --%s ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ಕಾರ್ಯಸ್ಥಳ %d ರೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಿತ್ತು, ಆದರೆ " +"--%s " +"ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ:ಕಾರ್ಯಸ್ಥಳ %d ರ ವಿಂಡೋಗಳ ಪಟ್ಟಿ ಮಾಡಬೇಕಿತ್ತು, ಆದರೆ " +"--%s " +"ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ಒಂದು ಅನ್ವಯದೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಿತ್ತು, ಆದರೆ --%s " +"ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ಒಂದು ಅನ್ವಯದ ವಿಂಡೋಗಳು ಪಟ್ಟಿಮಾಡಬೇಕಿತ್ತು, ಆದರೆ " +"--%s " +"ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ವರ್ಗ ಸಮೂಹ \"%s \" ದೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಿತ್ತು, " +"ಆದರೆ " +"--%s ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ವರ್ಗ ಸಮೂಹ \"%s \" ದ ವಿಂಡೋಗಳನ್ನು ಪಟ್ಟಿ " +"ಮಾಡಬೇಕಿತ್ತು, " +"ಆದರೆ --%s ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ಒಂದು ವಿಂಡೋದೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಿತ್ತು, ಆದರೆ --%s " +"ಅನ್ನು ಬಳಸಲಾಗಿದೆ\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: --%s ಹಾಗು --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"\"%d\" --%s ಗಾಗಿ ಅಮಾನ್ಯವಾದ ಆರ್ಗ್ಯುಮೆಂಟ್: ಆರ್ಗ್ಯುಮೆಂಟ್ ಖಡಾಖಂಡಿತವಾಗಿ " +"ಧನಾತ್ಮಕವಾಗಿರಲೇಬೇಕು\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"\"%d\" --%s ಗಾಗಿ ಅಮಾನ್ಯವಾದ ಆರ್ಗ್ಯುಮೆಂಟ್: ಆರ್ಗ್ಯುಮೆಂಟ್ ಧನಾತ್ಮಕವಾಗಿರಲೇಬೇಕು\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "ಅಸಮಂಜಸ ಆಯ್ಕೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ: --%s ಅಥವ --%s, ಹಾಗು --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" +"\"%s\" --%s ಗಾಗಿ ಅಮಾನ್ಯವಾದ ಆರ್ಗ್ಯುಮೆಂಟ್, ಮಾನ್ಯವಾದ ಮೌಲ್ಯಗಳು ಹೀಗಿವೆ: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"ತೆರೆಯ ಕಾರ್ಯಸ್ಥಳದ ವಿನ್ಯಾಸವನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ: ವಿನ್ಯಾಸವು ಈಗಾಗಲೆ " +"ಬೇರೊಬ್ಬರಿಂದ " +"ಮಾಲಿಕತ್ವವನ್ನು ಹೊಂದಿದೆ\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"ನೋಟಸ್ಥಾನವನ್ನು ಜರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ: ಈಗಿನ ಕಾರ್ಯಸ್ಥಳವು ಯಾವುದೆ ಒಂದು ನೋಟಸ್ಥಾನವನ್ನು " +"ಹೊಂದಿಲ್ಲ\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "ನೋಟಸ್ಥಾನವನ್ನು ಜರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ: ಈಗಿನ ಯಾವುದೆ ಕಾರ್ಯಸ್ಥಳವು ಇಲ್ಲ\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "ಕ್ರಿಯೆಗೆ ಅನುಮತಿ ಇಲ್ಲ\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" +"%d ಕಾರ್ಯಸ್ಥಳಕ್ಕೆ ವಿಂಡೋವನ್ನು ಜರುಗಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ: ಕಾರ್ಯಸ್ಥಳ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "<ಹೆಸರನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "ತೆರೆ ಸಂಖ್ಯೆ: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "ಆಕಾರ (ಅಗಲ, ಉದ್ದ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "ಕಾರ್ಯಸ್ಥಳಗಳ ಸಂಖ್ಯೆ: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "ಕಾರ್ಯಸ್ಥಳದ ವಿನ್ಯಾಸ (ಸಾಲುಗಳು, ಕಾಲಂಗಳು, ವಾಲಿಕೆ): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "<ಯಾವುದೆ EWMH-ಹೊಂದಾಣಿಕೆ ಇರುವ ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕವಿಲ್ಲ>" + +#: ../libwnck/wnckprop.c:1212 +#, c-format +msgid "Window Manager: %s\n" +msgstr "ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕ: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1217 ../libwnck/wnckprop.c:1298 +#: ../libwnck/wnckprop.c:1310 ../libwnck/wnckprop.c:1322 +#: ../libwnck/wnckprop.c:1334 ../libwnck/wnckprop.c:1450 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1222 ../libwnck/wnckprop.c:1303 +#: ../libwnck/wnckprop.c:1315 ../libwnck/wnckprop.c:1327 +#: ../libwnck/wnckprop.c:1339 ../libwnck/wnckprop.c:1457 +msgctxt "workspace" +msgid "none" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../libwnck/wnckprop.c:1223 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "ಸಕ್ರಿಯ ಕಾರ್ಯಸ್ಥಳ: %s\n" + +#: ../libwnck/wnckprop.c:1232 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1238 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1244 +msgctxt "window" +msgid "none" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../libwnck/wnckprop.c:1245 +#, c-format +msgid "Active Window: %s\n" +msgstr "ಸಕ್ರಿಯ ವಿಂಡೋ: %s\n" + +#: ../libwnck/wnckprop.c:1248 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "ಗಣಕತೆರೆಯನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ: %s\n" + +#: ../libwnck/wnckprop.c:1250 +msgid "true" +msgstr "ಸತ್ಯ" + +#: ../libwnck/wnckprop.c:1250 +msgid "false" +msgstr "ಅಸತ್ಯ" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "ಕಾರ್ಯಸ್ಥಳದ ಹೆಸರು: %s\n" + +#: ../libwnck/wnckprop.c:1262 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "ಕಾರ್ಯಸ್ಥಳದ ಸಂಖ್ಯೆ: %d\n" + +#: ../libwnck/wnckprop.c:1269 ../libwnck/wnckprop.c:1466 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "ತೆರೆಯ ಮೇಲೆ: %d (ವಿಂಡೋ ವ್ಯವಸ್ಥಾಪಕ: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1284 +msgid "" +msgstr "<ಯಾವುದೆ ನೋಟಸ್ಥಾನವಿಲ್ಲ>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1288 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "ನೋಟಸ್ಥಾನದ ಸ್ಥಾನ (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1291 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "ವಿನ್ಯಾಸದಲ್ಲಿನ ಸ್ಥಾನ (ಸಾಲು, ಕಾಲಂ): %d, %d\n" + +#: ../libwnck/wnckprop.c:1304 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "ಎಡ ಪಕ್ಕದಲ್ಲಿರುವುದು: %s\n" + +#: ../libwnck/wnckprop.c:1316 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "ಬಲ ಪಕ್ಕದಲ್ಲಿರುವುದು: %s\n" + +#: ../libwnck/wnckprop.c:1328 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "ಮೇಲ್ಭಾಗದಲ್ಲಿ ಇರುವುದು: %s\n" + +#: ../libwnck/wnckprop.c:1340 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "ಕೆಳಭಾಗದಲ್ಲಿ ಇರುವುದು: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1353 ../libwnck/wnckprop.c:1512 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "ವರ್ಗ ಸಮೂಹ ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1357 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "ವರ್ಗ ಸಮೂಹದ ಹೆಸರು: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1363 ../libwnck/wnckprop.c:1387 +#: ../libwnck/wnckprop.c:1441 +msgid "set" +msgstr "ಹೊಂದಿಸು" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1427 +#: ../libwnck/wnckprop.c:1434 ../libwnck/wnckprop.c:1444 +#: ../libwnck/wnckprop.c:1509 ../libwnck/wnckprop.c:1518 +#: ../libwnck/wnckprop.c:1530 ../libwnck/wnckprop.c:1538 +#: ../libwnck/wnckprop.c:1545 +msgid "" +msgstr "<ಹೊಂದಿಸದಿರು>" + +#: ../libwnck/wnckprop.c:1367 ../libwnck/wnckprop.c:1391 +#: ../libwnck/wnckprop.c:1445 +#, c-format +msgid "Icons: %s\n" +msgstr "ಚಿಹ್ನೆಗಳು: %s\n" + +#: ../libwnck/wnckprop.c:1370 ../libwnck/wnckprop.c:1408 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "ವಿಂಡೋಗಳ ಸಂಖ್ಯೆ: %d\n" + +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1428 +#, c-format +msgid "Name: %s\n" +msgstr "ಹೆಸರು: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1383 ../libwnck/wnckprop.c:1437 +#, c-format +msgid "Icon Name: %s\n" +msgstr "ಚಿಹ್ನೆಯ ಹೆಸರು: %s\n" + +#: ../libwnck/wnckprop.c:1398 ../libwnck/wnckprop.c:1531 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1405 +msgctxt "startupID" +msgid "none" +msgstr "ಯಾವುದೂ ಇಲ್ಲ" + +#: ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Startup ID: %s\n" +msgstr "ಆರಂಭದ ID: %s\n" + +#: ../libwnck/wnckprop.c:1454 +msgid "all workspaces" +msgstr "ಎಲ್ಲಾ ಕಾರ್ಯಸ್ಥಳಗಳು" + +#: ../libwnck/wnckprop.c:1458 +#, c-format +msgid "On Workspace: %s\n" +msgstr "ಕಾರ್ಯಸ್ಥಳದ ಮೇಲೆ: %s\n" + +#: ../libwnck/wnckprop.c:1473 +msgid "normal window" +msgstr "ಸಾಮಾನ್ಯ ವಿಂಡೋ" + +#: ../libwnck/wnckprop.c:1476 +msgid "desktop" +msgstr "ಗಣಕತೆರೆ" + +#: ../libwnck/wnckprop.c:1479 +msgid "dock or panel" +msgstr "ಡಾಕ್ ಅಥವ ಫಲಕ" + +#: ../libwnck/wnckprop.c:1482 +msgid "dialog window" +msgstr "ಸಂವಾದ ವಿಂಡೋ" + +#: ../libwnck/wnckprop.c:1485 +msgid "tearoff toolbar" +msgstr "ಉಪಕರಣಪಟ್ಟಿಯನ್ನು ಕಿತ್ತುಹಾಕು" + +#: ../libwnck/wnckprop.c:1488 +msgid "tearoff menu" +msgstr "ಮೆನುವನ್ನು ಕಿತ್ತುಹಾಕು" + +#: ../libwnck/wnckprop.c:1491 +msgid "utility window" +msgstr "ಸವಲತ್ತು ವಿಂಡೋ" + +#: ../libwnck/wnckprop.c:1494 +msgid "splash screen" +msgstr "ಸ್ಪ್ಲಾಶ್ ತೆರೆ" + +#: ../libwnck/wnckprop.c:1499 +#, c-format +msgid "Window Type: %s\n" +msgstr "ವಿಂಡೋ ಬಗೆ: %s\n" + +#: ../libwnck/wnckprop.c:1502 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "ಆಕಾರ (x, y, ಅಗಲ, ಉದ್ದ): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "Class Instance: %s\n" +msgstr "ವರ್ಗ ಸನ್ನಿವೇಶ: %s\n" + +#: ../libwnck/wnckprop.c:1524 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1539 +#, c-format +msgid "Session ID: %s\n" +msgstr "ಅಧಿವೇಶನ ID: %s\n" + +#: ../libwnck/wnckprop.c:1546 +#, c-format +#| msgid "%lu: %s\n" +msgid "Role: %s\n" +msgstr "ಪಾತ್ರ: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1553 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "ಗುಂಪು ಮುಖ್ಯಸ್ಥ: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1559 +#, c-format +msgid "Transient for: %lu\n" +msgstr "ಇದರ ಮೇಲಿನ : %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1574 ../libwnck/wnckprop.c:1622 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1578 ../libwnck/wnckprop.c:1624 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1584 +msgid "minimized" +msgstr "ಕುಗ್ಗಿಸಲಾದ" + +#: ../libwnck/wnckprop.c:1585 +msgid "maximized" +msgstr "ಹಿಗ್ಗಿಸಲಾದ" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized horizontally" +msgstr "ಅಡ್ಡವಾಗಿ ಹಿಗ್ಗಿಸಲಾದ" + +#: ../libwnck/wnckprop.c:1591 +msgid "maximized vertically" +msgstr "ಲಂಬವಾಗಿ ಹಿಗ್ಗಿಸಲಾದ" + +#: ../libwnck/wnckprop.c:1593 +msgid "shaded" +msgstr "ಮಬ್ಬಾಗಿಸಿದ" + +#: ../libwnck/wnckprop.c:1594 +msgid "pinned" +msgstr "ಪಿನ್ ಮಾಡಲಾದ" + +#: ../libwnck/wnckprop.c:1595 +msgid "sticky" +msgstr "ಅಂಟಿಸಲಾದ" + +#: ../libwnck/wnckprop.c:1596 +msgid "above" +msgstr "ಮೇಲೆ" + +#: ../libwnck/wnckprop.c:1597 +msgid "below" +msgstr "ಕೆಳಕ್ಕೆ" + +#: ../libwnck/wnckprop.c:1598 +msgid "fullscreen" +msgstr "ಸಂಪೂರ್ಣತೆರೆ" + +#: ../libwnck/wnckprop.c:1599 +msgid "needs attention" +msgstr "ಗಮನದ ಅಗತ್ಯವಿದೆ" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1604 +msgid "skip pager" +msgstr "ಪೇಜರ್ ಅನ್ನು ಉಪೇಕ್ಷಿಸು" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1607 +msgid "skip tasklist" +msgstr "ಕಾರ್ಯಪಟ್ಟಿಯನ್ನು ಉಪೇಕ್ಷಿಸು" + +#: ../libwnck/wnckprop.c:1609 +msgid "normal" +msgstr "ಸಾಮಾನ್ಯ" + +#: ../libwnck/wnckprop.c:1610 +#, c-format +msgid "State: %s\n" +msgstr "ಸ್ಥಿತಿ: %s\n" + +#: ../libwnck/wnckprop.c:1631 +msgid "move" +msgstr "ಜರಗಿಸು" + +#: ../libwnck/wnckprop.c:1632 +msgid "resize" +msgstr "ಗಾತ್ರ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:1633 +msgid "shade" +msgstr "ಮಬ್ಬುಗೊಳಿಸು" + +#: ../libwnck/wnckprop.c:1634 +msgid "unshade" +msgstr "ಮಬ್ಬುಗೊಳಿಸದಿರು" + +#: ../libwnck/wnckprop.c:1635 +msgid "stick" +msgstr "ಅಂಟಿಸು" + +#: ../libwnck/wnckprop.c:1636 +msgid "unstick" +msgstr "ಅಂಟಿಸದಿರು" + +#: ../libwnck/wnckprop.c:1638 +msgid "maximize horizontally" +msgstr "ಅಡ್ಡವಾಗಿ ಹಿಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1640 +msgid "unmaximize horizontally" +msgstr "ಅಡ್ಡವಾಗಿ ಹಿಗ್ಗಿಸಿದ್ದನ್ನು ಕುಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1642 +msgid "maximize vertically" +msgstr "ಲಂಬವಾಗಿ ಹಿಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1644 +msgid "unmaximize vertically" +msgstr "ಲಂಬವಾಗಿ ಹಿಗ್ಗಿಸಿದ್ದನ್ನು ಕುಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1647 +msgid "change workspace" +msgstr "ಕಾರ್ಯಸ್ಥಳವನ್ನು ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:1649 +msgid "pin" +msgstr "ಪಿನ್ ಮಾಡು" + +#: ../libwnck/wnckprop.c:1651 +msgid "unpin" +msgstr "ಪಿನ್ ಮಾಡದಿರು" + +#: ../libwnck/wnckprop.c:1652 +msgid "minimize" +msgstr "ಕುಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1653 +msgid "unminimize" +msgstr "ಕುಗ್ಗಿಸಿದ್ದನ್ನು ಹಿಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1654 +msgid "maximize" +msgstr "ಹಿಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1655 +msgid "unmaximize" +msgstr "ಹಿಗ್ಗಿಸಿದ್ದನ್ನು ಕುಗ್ಗಿಸು" + +#: ../libwnck/wnckprop.c:1657 +msgid "change fullscreen mode" +msgstr "ಸಂಪೂರ್ಣ ತೆರೆ ಕ್ರಮಕ್ಕೆ ಬದಲಾಯಿಸು" + +#: ../libwnck/wnckprop.c:1658 +msgid "close" +msgstr "ಮುಚ್ಚು" + +#: ../libwnck/wnckprop.c:1660 +msgid "make above" +msgstr "ಮೇಲೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:1662 +msgid "unmake above" +msgstr "ಮೇಲೆ ಮಾಡದಿರು" + +#: ../libwnck/wnckprop.c:1664 +msgid "make below" +msgstr "ಕೆಳಗೆ ಮಾಡು" + +#: ../libwnck/wnckprop.c:1666 +msgid "unmake below" +msgstr "ಕೆಳಗೆ ಮಾಡದಿರು" + +#: ../libwnck/wnckprop.c:1668 +msgid "no action possible" +msgstr "ಯಾವುದೆ ಕಾರ್ಯವು ಸಾಧ್ಯವಿಲ್ಲ" + +#: ../libwnck/wnckprop.c:1669 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "ಸಾಧ್ಯವಿರುವ ಕಾರ್ಯಗಳು: %s\n" + +#: ../libwnck/wnckprop.c:1901 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"EWMH ಸೂಚನೆಯ ಅನುಗುಣವಾಗಿ, ಒಂದು ತೆರೆ/ಕಾರ್ಯಸ್ಥಳ/ವಿಂಡೋದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನೋಡಿ ಅಥವ " +"ಬದಲಾಯಿಸಿ, ಅಥವ ಅದರೊಂದಿಗೆ ವ್ಯವಹರಿಸಿ.\n" +"ಈ ಸೂಚನೆಯ ಬಗೆಗಿನ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ಇಲ್ಲಿಗೆ ಭೇಟಿಕೊಡಿ:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1911 +msgid "Options to list windows or workspaces" +msgstr "ವಿಂಡೋಗಳನ್ನು ಅಥವ ಕಾರ್ಯಸ್ಥಳಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು ಆಯ್ಕೆಗಳು" + +#: ../libwnck/wnckprop.c:1912 +msgid "Show options to list windows or workspaces" +msgstr "ವಿಂಡೋಗಳನ್ನು ಅಥವ ಕಾರ್ಯಸ್ಥಳಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಲು ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು" + +#: ../libwnck/wnckprop.c:1919 +msgid "Options to modify properties of a window" +msgstr "ಒಂದು ವಿಂಡೋದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳು" + +#: ../libwnck/wnckprop.c:1920 +msgid "Show options to modify properties of a window" +msgstr "ಒಂದು ವಿಂಡೋದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು" + +#: ../libwnck/wnckprop.c:1927 +msgid "Options to modify properties of a workspace" +msgstr "ಒಂದು ಕಾರ್ಯಸ್ಥಳ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳು" + +#: ../libwnck/wnckprop.c:1928 +msgid "Show options to modify properties of a workspace" +msgstr "ಒಂದು ಕಾರ್ಯಸ್ಥಳ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು" + +#: ../libwnck/wnckprop.c:1935 +msgid "Options to modify properties of a screen" +msgstr "ಒಂದು ತೆರೆಯನ್ನು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳು" + +#: ../libwnck/wnckprop.c:1936 +msgid "Show options to modify properties of a screen" +msgstr "ಒಂದು ತೆರೆಯನ್ನು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು" + +#: ../libwnck/wnckprop.c:1947 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಉಂಟಾಗಿದೆ: %s\n" + +#: ../libwnck/wnckprop.c:1970 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "%d ತೆರೆಯೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: ತೆರೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ\n" + +#: ../libwnck/wnckprop.c:2026 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"%d ಕಾರ್ಯಸ್ಥಳದೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: ಕಾರ್ಯಸ್ಥಳವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2050 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" +"\"%s\" ವರ್ಗ ಸಮೂಹದೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: ವರ್ಗ ಸಮೂಹವು " +"ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ\n" + +#: ../libwnck/wnckprop.c:2073 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"XID %lu ಯೊಂದಿಗೆ ಸಮೂಹ ಮುಖ್ಯಸ್ಥನನ್ನು ಹೊಂದಿರುವ ಅನ್ವಯದೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು " +"ಸಾಧ್ಯವಾಗಿಲ್ಲ: " +"ಅನ್ವಯವು ಕಂಡುಬಂದಿಲ್ಲ\n" + +#: ../libwnck/wnckprop.c:2096 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" +"XID %lu ಅನ್ನು ಹೊಂದಿರುವ ವಿಂಡೋವಿನೊಂದಿಗೆ ವ್ಯವಹರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: ವಿಂಡೋ " +"ಕಂಡುಬಂದಿಲ್ಲ\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "N_ROWS ಸಾಲುಗಳನ್ನು ಬಳಸು" + +#~ msgid "N_ROWS" +#~ msgstr "N_ROWS" + +#~ msgid "Only show current workspace" +#~ msgstr "ಕೇವಲ ಈಗಿನ ಕಾರ್ಯಾಕ್ಷೇತ್ರವನ್ನು ಮಾತ್ರ ತೋರಿಸು" + +#~ msgid "Use RTL as default direction" +#~ msgstr "RTL ಅನ್ನು ಪೂರ್ವನಿಯೋಜಿತ ದಿಕ್ಕಾಗಿ ಬಳಸು" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "ಕಾರ್ಯಸ್ಥಳಗಳಲ್ಲಿನ ವಿಷಯಗಳನ್ನು ತೋರಿಸುವ ಬದಲು ಅದರ ಹೆಸರುಗಳನ್ನು ತೋರಿಸು" + +#~ msgid "Use a vertical orientation" +#~ msgstr "ಲಂಬವಾದ ವಾಲಿಕೆಯನ್ನು ಬಳಸು" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "ಕಾರ್ಯಗಳ ಪಟ್ಟಿಯಲ್ಲಿ ವಿಂಡೋ ಅನ್ನು ತೋರಿಸಬೇಡ" + +#~ msgid "Always group windows" +#~ msgstr "ಯಾವಾಗಲೂ ವಿಂಡೋಗಳನ್ನು ಗುಂಪುಗೂಡಿಸು" + +#~ msgid "Never group windows" +#~ msgstr "ಎಂದಿಗೂ ವಿಂಡೋಗಳನ್ನು ಗುಂಪುಗೂಡಿಸಬೇಡ" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "ಎಲ್ಲಾ ಕಾರ್ಯಸ್ಥಳಗಳನ್ನು ವಿಂಡೋಗಳನ್ನು ತೋರಿಸು" + +#~ msgid "Enable Transparency" +#~ msgstr "ಪಾರದರ್ಶಕತೆಯನ್ನು ಶಕ್ತಗೊಳಿಸು" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "ಸಂಪನ್ಮೂಲ ವರ್ಗ: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "ಗುಂಪಿನ ಹೆಸರು: %s\n" diff --git a/po/ko.gmo b/po/ko.gmo new file mode 100644 index 0000000..395dbc3 Binary files /dev/null and b/po/ko.gmo differ diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 0000000..5cb8239 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,1267 @@ +# libwnck +# Young-Ho, Cha , 2002. +# Changwoo Ryu , 2002-2005, 2007, 2008, 2009, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-08-12 10:57+0000\n" +"PO-Revision-Date: 2011-09-13 09:00+0900\n" +"Last-Translator: Changwoo Ryu \n" +"Language-Team: GNOME Korea \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "제목 없는 프로그램" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "작업 공간 바꾸기 프로그램" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "작업 공간을 바꾸는 도구" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "작업 공간 %s(으)로 바꾸려면 누르십시오" + +#: ../libwnck/pager.c:2200 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "\"%s\"을(를) 끌어 옮기려면 누르십시오" + +#: ../libwnck/pager.c:2203 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "현재 작업 공간: \"%s\"" + +#: ../libwnck/pager.c:2208 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "\"%s\"(으)로 바꾸려면 누르십시오" + +#: ../libwnck/selector.c:1180 +msgid "No Windows Open" +msgstr "열린 창이 없습니다" + +#: ../libwnck/selector.c:1236 +msgid "Window Selector" +msgstr "창 선택" + +#: ../libwnck/selector.c:1237 +msgid "Tool to switch between windows" +msgstr "창 사이로 옮겨 다니는 도구" + +#: ../libwnck/tasklist.c:673 +msgid "Window List" +msgstr "창 목록" + +#: ../libwnck/tasklist.c:674 +msgid "Tool to switch between visible windows" +msgstr "창 사이로 옮겨 다니는 도구" + +#: ../libwnck/tasklist.c:2896 +msgid "Mi_nimize All" +msgstr "모두 최소화(_N)" + +#: ../libwnck/tasklist.c:2907 +msgid "Un_minimize All" +msgstr "모두 최소화 취소(_M)" + +#: ../libwnck/tasklist.c:2915 +msgid "Ma_ximize All" +msgstr "모두 최대화(_X)" + +#: ../libwnck/tasklist.c:2926 +msgid "_Unmaximize All" +msgstr "모두 최대화 취소(_U)" + +#: ../libwnck/tasklist.c:2938 +msgid "_Close All" +msgstr "모두 닫기(_C)" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "최소화 취소(_N)" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "최소화(_N)" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "최대화 취소(_X)" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "최대화(_X)" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "작업 공간 %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "작업 공간 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "작업 공간 %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "옮기기(_M)" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "크기 조정(_R)" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "항상 위(_T)" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "항상 보고 있는 작업 공간에 놓기(_A)" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "이 작업 공간에만 놓기(_O)" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "작업 공간 왼쪽으로 옮기기(_L)" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "작업 공간 오른쪽으로 옮기기(_I)" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "작업 공간 위로 옮기기(_U)" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "작업 공간 아래로 옮기기(_D)" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "다른 작업 공간으로 옮기기(_W)" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "닫기(_C)" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "제목없는 창" + +#: ../libwnck/wnckprop.c:138 +msgid "X window ID of the window to examine or modify" +msgstr "살펴보거나 바꿀 창의 X 윈도우 ID" + +#: ../libwnck/wnckprop.c:138 ../libwnck/wnckprop.c:145 +#: ../libwnck/wnckprop.c:155 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:144 +msgid "X window ID of the group leader of an application to examine" +msgstr "살펴볼 프로그램의 그룹 리더의 X 윈도우 ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:149 +msgid "Class resource of the class group to examine" +msgstr "살펴볼 클래스 그룹의 클래스 리소스" + +#: ../libwnck/wnckprop.c:149 +msgid "CLASS" +msgstr "<클래스>" + +#: ../libwnck/wnckprop.c:151 +msgid "NUMBER of the workspace to examine or modify" +msgstr "살펴보거나 바꿀 작업 공간의 <숫자>" + +#: ../libwnck/wnckprop.c:151 ../libwnck/wnckprop.c:153 +#: ../libwnck/wnckprop.c:171 ../libwnck/wnckprop.c:173 +#: ../libwnck/wnckprop.c:175 ../libwnck/wnckprop.c:272 +msgid "NUMBER" +msgstr "<숫자>" + +#: ../libwnck/wnckprop.c:153 +msgid "NUMBER of the screen to examine or modify" +msgstr "살펴보거나 바꿀 스크린의 <숫자>" + +#: ../libwnck/wnckprop.c:155 +msgid "Alias of --window" +msgstr "--window와 동일" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:163 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"프로그램/클래스 그룹/작업 공간/스크린의 창 목록 (출력 형식: \"XID: 창 이름\")" + +#: ../libwnck/wnckprop.c:165 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "화면의 작업 공간 목록 (출력 형식: \"번호: 작업 공간 이름\")" + +#: ../libwnck/wnckprop.c:171 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "스크린의 작업 공간 개수를 <숫자>로 바꿉니다" + +#: ../libwnck/wnckprop.c:173 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "스크린의 작업 공간 배치를 <숫자>줄로 바꿉니다" + +#: ../libwnck/wnckprop.c:175 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "스크린의 작업 공간 배치를 <숫자>열로 바꿉니다" + +#: ../libwnck/wnckprop.c:177 +msgid "Show the desktop" +msgstr "바탕 화면을 봅니다" + +#: ../libwnck/wnckprop.c:179 +msgid "Stop showing the desktop" +msgstr "바탕 화면을 그만 봅니다" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:184 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "현재 작업 공간의 뷰포트의 가로 좌표를 <가로>로 옮깁니다" + +#: ../libwnck/wnckprop.c:184 ../libwnck/wnckprop.c:274 +msgid "X" +msgstr "<가로>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:189 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "현재 작업 공간의 뷰포트의 세로 좌표를 <세로>로 옮깁니다" + +#: ../libwnck/wnckprop.c:189 ../libwnck/wnckprop.c:276 +msgid "Y" +msgstr "<세로>" + +#: ../libwnck/wnckprop.c:195 +msgid "Minimize the window" +msgstr "창을 최소화합니다" + +#: ../libwnck/wnckprop.c:197 +msgid "Unminimize the window" +msgstr "창을 최소화 취소합니다" + +#: ../libwnck/wnckprop.c:199 +msgid "Maximize the window" +msgstr "창을 최대화합니다" + +#: ../libwnck/wnckprop.c:201 +msgid "Unmaximize the window" +msgstr "창을 최대화 취소합니다" + +#: ../libwnck/wnckprop.c:203 +msgid "Maximize horizontally the window" +msgstr "창을 가로 방향으로 최대화합니다" + +#: ../libwnck/wnckprop.c:205 +msgid "Unmaximize horizontally the window" +msgstr "창을 가로 방향으로 최대화 취소합니다" + +#: ../libwnck/wnckprop.c:207 +msgid "Maximize vertically the window" +msgstr "창을 세로 방향으로 최대화합니다" + +#: ../libwnck/wnckprop.c:209 +msgid "Unmaximize vertically the window" +msgstr "창을 세로 방향으로 최대화 취소합니다" + +#: ../libwnck/wnckprop.c:211 +msgid "Start moving the window via the keyboard" +msgstr "키보드를 이용해 창을 옮기기 시작합니다" + +#: ../libwnck/wnckprop.c:213 +msgid "Start resizing the window via the keyboard" +msgstr "키보드를 이용해 창의 크기를 바꾸기 시작합니다" + +#: ../libwnck/wnckprop.c:215 +msgid "Activate the window" +msgstr "창을 활성화합니다" + +#: ../libwnck/wnckprop.c:217 +msgid "Close the window" +msgstr "창을 닫습니다" + +#: ../libwnck/wnckprop.c:220 +msgid "Make the window fullscreen" +msgstr "창을 전체 화면으로 만듭니다" + +#: ../libwnck/wnckprop.c:222 +msgid "Make the window quit fullscreen mode" +msgstr "창의 전체 화면 모드를 멈춥니다" + +#: ../libwnck/wnckprop.c:224 +msgid "Make the window always on top" +msgstr "창을 항상 위에 놓습니다" + +#: ../libwnck/wnckprop.c:226 +msgid "Make the window not always on top" +msgstr "창을 항상 위에 있지 않게 합니다" + +#: ../libwnck/wnckprop.c:228 +msgid "Make the window below other windows" +msgstr "창을 다른 창 아래에 놓습니다" + +#: ../libwnck/wnckprop.c:230 +msgid "Make the window not below other windows" +msgstr "창을 다른 창 아래에 있지 않게 합니다" + +#: ../libwnck/wnckprop.c:232 +msgid "Shade the window" +msgstr "창을 말아올립니다" + +#: ../libwnck/wnckprop.c:234 +msgid "Unshade the window" +msgstr "말아올린 창을 복구합니다" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:239 +msgid "Make the window have a fixed position in the viewport" +msgstr "창이 뷰포트안에서 고정된 위치를 갖게 합니다" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:244 +msgid "Make the window not have a fixed position in the viewport" +msgstr "창이 뷰포트안에서 고정된 위치를 갖지 않게 합니다" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:251 +msgid "Make the window not appear in pagers" +msgstr "창이 작업 공간 표시 안에 보이지 않게 합니다" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:258 +msgid "Make the window appear in pagers" +msgstr "창이 작업 공간 표시 안에 보이게 합니다" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:262 +msgid "Make the window not appear in tasklists" +msgstr "창을 작업 목록에 보이지 않게 합니다" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:266 +msgid "Make the window appear in tasklists" +msgstr "창을 작업 목록에 보이게 합니다" + +#: ../libwnck/wnckprop.c:268 +msgid "Make the window visible on all workspaces" +msgstr "창을 모든 작업 공간에 보이게 합니다 " + +#: ../libwnck/wnckprop.c:270 +msgid "Make the window visible on the current workspace only" +msgstr "창을 현재 작업 공간에만 보이게 합니다 " + +#: ../libwnck/wnckprop.c:272 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "창을 작업공간 <숫자>로 옮깁니다 (첫번째 작업 공간이 0부터 시작)" + +#: ../libwnck/wnckprop.c:274 +msgid "Change the X coordinate of the window to X" +msgstr "창의 가로 좌표를 <가로>로 바꿉니다" + +#: ../libwnck/wnckprop.c:276 +msgid "Change the Y coordinate of the window to Y" +msgstr "창의 세로 좌표를 <세로>로 바꿉니다" + +#: ../libwnck/wnckprop.c:278 +msgid "Change the width of the window to WIDTH" +msgstr "창의 너비를 <너비>로 바꿉니다" + +#: ../libwnck/wnckprop.c:278 +msgid "WIDTH" +msgstr "<너비>" + +#: ../libwnck/wnckprop.c:280 +msgid "Change the height of the window to HEIGHT" +msgstr "창의 높이를 <높이>로 바꿉니다" + +#: ../libwnck/wnckprop.c:280 +msgid "HEIGHT" +msgstr "<높이>" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:283 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"창의 종류를 <종류>로 바꿉니다 (가능한 값: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:283 +msgid "TYPE" +msgstr "<종류>" + +#: ../libwnck/wnckprop.c:289 +msgid "Change the name of the workspace to NAME" +msgstr "작업 공간의 이름을 <이름>으로 바꿉니다" + +#: ../libwnck/wnckprop.c:289 +msgid "NAME" +msgstr "<이름>" + +#: ../libwnck/wnckprop.c:291 +msgid "Activate the workspace" +msgstr "작업 공가을 활성화합니다" + +#: ../libwnck/wnckprop.c:385 ../libwnck/wnckprop.c:409 +#: ../libwnck/wnckprop.c:445 ../libwnck/wnckprop.c:468 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "--%2$s 옵션에 대해 \"%1$s\" 값이 잘못되었습니다" + +#: ../libwnck/wnckprop.c:502 ../libwnck/wnckprop.c:521 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --%" +"s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 스크린 %d번과 통신하지만, --%s " +"옵션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:511 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 스크린 %d번의 창이나 작업 공간" +"의 목록을 표시해야 하지만, --%s 옵션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:534 ../libwnck/wnckprop.c:554 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 작업 공간 %d번과 통신하지만, --" +"%s 옵션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:544 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 작업 공간 %d번의 창 목록을 표시" +"해야 하지만, --%s 옵션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:566 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 프로그램과 통신하지만, --%s 옵" +"션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:576 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 프로그램의 창 목록을 표시해야 " +"하지만, --%s 옵션을 사용했습니다\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:590 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: \"%s\" 클래스 그룹과 통신하지" +"만, --%s 옵션을 사용했습니다\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:602 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: \"%s\" 클래스 그룹의 창 목록을 " +"표시해야 하지만, --%s 옵션을 사용했습니다\n" + +#: ../libwnck/wnckprop.c:614 ../libwnck/wnckprop.c:623 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --%" +"s has been used\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: 창과 통신하지만, --%s 옵션을 사" +"용했습니다\n" + +#: ../libwnck/wnckprop.c:642 ../libwnck/wnckprop.c:723 +#: ../libwnck/wnckprop.c:770 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "같이 사용할 수 없는 옵션을 같이 사용했습니다: --%s 옵션과 --%s 옵션\n" + +#: ../libwnck/wnckprop.c:681 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"--%2$s 옵션에 대해 \"%1$d\" 인자가 잘못되었습니다: 옵션의 인자는 0보다 커야 " +"합니다\n" + +#: ../libwnck/wnckprop.c:694 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"--%2$s 옵션에 대해 \"%1$d\" 인자가 잘못되었습니다: 옵션의 인자는 0보다 같거" +"나 커야 합니다\n" + +#: ../libwnck/wnckprop.c:789 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" +"같이 사용할 수 없는 옵션을 같이 사용했습니다: --%s 혹은 --%s 옵션과 --%s 옵" +"션\n" + +#: ../libwnck/wnckprop.c:821 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "--%2$s 옵션에 대해 \"%1$s\" 인자가 잘못되었습니다. 올바른 값은: %3$s\n" + +#: ../libwnck/wnckprop.c:864 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"스크린의 작업 공간 배치를 바꿀 수 없습니다: 다른 프로그램이 작업 공간 배치를 " +"사용 중입니다\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:899 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "뷰포트를 옮길 수 없습니다: 현재 작업 공간에 뷰포트가 없습니다\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:906 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "뷰포트를 옮길 수 없습니다: 현재 작업 공간이 없습니다\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:942 ../libwnck/wnckprop.c:951 +#: ../libwnck/wnckprop.c:960 ../libwnck/wnckprop.c:967 +#: ../libwnck/wnckprop.c:977 ../libwnck/wnckprop.c:984 +#: ../libwnck/wnckprop.c:993 ../libwnck/wnckprop.c:1042 +#, c-format +msgid "Action not allowed\n" +msgstr "허용하지 않는 동작입니다\n" + +#: ../libwnck/wnckprop.c:1038 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "창을 작업 공간 %d번으로 옮길 수 없습니다: 그 작업 공간이 없습니다\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1102 ../libwnck/wnckprop.c:1234 +msgid "" +msgstr "<이름 설정 취소>" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1105 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1125 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1188 +#, c-format +msgid "Screen Number: %d\n" +msgstr "스크린 번호: %d\n" + +#: ../libwnck/wnckprop.c:1190 ../libwnck/wnckprop.c:1271 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "크기 (너비, 높이): %d, %d\n" + +#: ../libwnck/wnckprop.c:1194 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "작업 공간 개수: %d\n" + +#: ../libwnck/wnckprop.c:1200 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "작업 공간 배치 (열, 행, 방향): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1210 ../libwnck/wnckprop.c:1267 +#: ../libwnck/wnckprop.c:1464 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1211 +#, c-format +msgid "Window Manager: %s\n" +msgstr "창 관리자: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1216 ../libwnck/wnckprop.c:1297 +#: ../libwnck/wnckprop.c:1309 ../libwnck/wnckprop.c:1321 +#: ../libwnck/wnckprop.c:1333 ../libwnck/wnckprop.c:1449 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d (\"%s\")" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1221 ../libwnck/wnckprop.c:1302 +#: ../libwnck/wnckprop.c:1314 ../libwnck/wnckprop.c:1326 +#: ../libwnck/wnckprop.c:1338 ../libwnck/wnckprop.c:1456 +msgctxt "workspace" +msgid "none" +msgstr "없음" + +#: ../libwnck/wnckprop.c:1222 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "활성화한 작업 공간: %s\n" + +#: ../libwnck/wnckprop.c:1231 +#, c-format +msgid "\"%s\"" +msgstr "\"%s\"" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1237 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1243 +msgctxt "window" +msgid "none" +msgstr "없음" + +#: ../libwnck/wnckprop.c:1244 +#, c-format +msgid "Active Window: %s\n" +msgstr "활성 창: %s\n" + +#: ../libwnck/wnckprop.c:1247 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "바탕 화면 표시: %s\n" + +#: ../libwnck/wnckprop.c:1249 +msgid "true" +msgstr "참" + +#: ../libwnck/wnckprop.c:1249 +msgid "false" +msgstr "거짓" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "작업 공간 이름: %s\n" + +#: ../libwnck/wnckprop.c:1261 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "작업 공간 번호: %d\n" + +#: ../libwnck/wnckprop.c:1268 ../libwnck/wnckprop.c:1465 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "스크린: %d (창 관리자: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1283 +msgid "" +msgstr "<뷰포트 없음>" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1287 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "뷰포트 위치 (가로, 세로): %s\n" + +#: ../libwnck/wnckprop.c:1290 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "배치 상의 위치 (줄, 열): %d, %d\n" + +#: ../libwnck/wnckprop.c:1303 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "왼쪽 이웃: %s\n" + +#: ../libwnck/wnckprop.c:1315 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "오른쪽 이웃: %s\n" + +#: ../libwnck/wnckprop.c:1327 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "위 이웃: %s\n" + +#: ../libwnck/wnckprop.c:1339 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "아래 이웃: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1352 ../libwnck/wnckprop.c:1511 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "클래스 그룹 ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1356 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "클래스 그룹 이름: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1362 ../libwnck/wnckprop.c:1386 +#: ../libwnck/wnckprop.c:1440 +msgid "set" +msgstr "설정" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1426 +#: ../libwnck/wnckprop.c:1433 ../libwnck/wnckprop.c:1443 +#: ../libwnck/wnckprop.c:1508 ../libwnck/wnckprop.c:1517 +#: ../libwnck/wnckprop.c:1529 ../libwnck/wnckprop.c:1537 +msgid "" +msgstr "<설정취소>" + +#: ../libwnck/wnckprop.c:1366 ../libwnck/wnckprop.c:1390 +#: ../libwnck/wnckprop.c:1444 +#, c-format +msgid "Icons: %s\n" +msgstr "아이콘: %s\n" + +#: ../libwnck/wnckprop.c:1369 ../libwnck/wnckprop.c:1407 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "창 개수: %d\n" + +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1427 +#, c-format +msgid "Name: %s\n" +msgstr "이름: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1382 ../libwnck/wnckprop.c:1436 +#, c-format +msgid "Icon Name: %s\n" +msgstr "아이콘 이름: %s\n" + +#: ../libwnck/wnckprop.c:1397 ../libwnck/wnckprop.c:1530 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1404 +msgctxt "startupID" +msgid "none" +msgstr "없음" + +#: ../libwnck/wnckprop.c:1405 +#, c-format +msgid "Startup ID: %s\n" +msgstr "시작 ID: %s\n" + +#: ../libwnck/wnckprop.c:1453 +msgid "all workspaces" +msgstr "모든 작업 공간" + +#: ../libwnck/wnckprop.c:1457 +#, c-format +msgid "On Workspace: %s\n" +msgstr "작업 공간: %s\n" + +#: ../libwnck/wnckprop.c:1472 +msgid "normal window" +msgstr "일반 창" + +#: ../libwnck/wnckprop.c:1475 +msgid "desktop" +msgstr "바탕 화면" + +#: ../libwnck/wnckprop.c:1478 +msgid "dock or panel" +msgstr "도크 혹은 패널" + +#: ../libwnck/wnckprop.c:1481 +msgid "dialog window" +msgstr "대화 창" + +#: ../libwnck/wnckprop.c:1484 +msgid "tearoff toolbar" +msgstr "떼어낸 툴바" + +#: ../libwnck/wnckprop.c:1487 +msgid "tearoff menu" +msgstr "떼어낸 메뉴" + +#: ../libwnck/wnckprop.c:1490 +msgid "utility window" +msgstr "유틸리티 창" + +#: ../libwnck/wnckprop.c:1493 +msgid "splash screen" +msgstr "스플래시 창" + +#: ../libwnck/wnckprop.c:1498 +#, c-format +msgid "Window Type: %s\n" +msgstr "창 종류: %s\n" + +#: ../libwnck/wnckprop.c:1501 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "위치 및 크기 (가로, 세로, 너비, 높이): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1521 +#, c-format +msgid "Class Instance: %s\n" +msgstr "클래스 인스턴스: %s\n" + +#: ../libwnck/wnckprop.c:1523 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1538 +#, c-format +msgid "Session ID: %s\n" +msgstr "세션 ID: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1545 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "그룹 리더: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Transient for: %lu\n" +msgstr "아래 놓임: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1566 ../libwnck/wnckprop.c:1614 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1570 ../libwnck/wnckprop.c:1616 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1576 +msgid "minimized" +msgstr "최소화" + +#: ../libwnck/wnckprop.c:1577 +msgid "maximized" +msgstr "최대화" + +#: ../libwnck/wnckprop.c:1581 +msgid "maximized horizontally" +msgstr "가로 최대화" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized vertically" +msgstr "세로 최대화" + +#: ../libwnck/wnckprop.c:1585 +msgid "shaded" +msgstr "말아올림" + +#: ../libwnck/wnckprop.c:1586 +msgid "pinned" +msgstr "위치 고정" + +#: ../libwnck/wnckprop.c:1587 +msgid "sticky" +msgstr "고정" + +#: ../libwnck/wnckprop.c:1588 +msgid "above" +msgstr "위" + +#: ../libwnck/wnckprop.c:1589 +msgid "below" +msgstr "아래" + +#: ../libwnck/wnckprop.c:1590 +msgid "fullscreen" +msgstr "전체 화면" + +#: ../libwnck/wnckprop.c:1591 +msgid "needs attention" +msgstr "주의 필요" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1596 +msgid "skip pager" +msgstr "작업 공간 표시 건너뛰기" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1599 +msgid "skip tasklist" +msgstr "작업 목록 건너뛰기" + +#: ../libwnck/wnckprop.c:1601 +msgid "normal" +msgstr "일반" + +#: ../libwnck/wnckprop.c:1602 +#, c-format +msgid "State: %s\n" +msgstr "상태: %s\n" + +#: ../libwnck/wnckprop.c:1623 +msgid "move" +msgstr "옮기기" + +#: ../libwnck/wnckprop.c:1624 +msgid "resize" +msgstr "크기 조정" + +#: ../libwnck/wnckprop.c:1625 +msgid "shade" +msgstr "말아올리기" + +#: ../libwnck/wnckprop.c:1626 +msgid "unshade" +msgstr "끌어내리기" + +#: ../libwnck/wnckprop.c:1627 +msgid "stick" +msgstr "고정" + +#: ../libwnck/wnckprop.c:1628 +msgid "unstick" +msgstr "고정 취소" + +#: ../libwnck/wnckprop.c:1630 +msgid "maximize horizontally" +msgstr "가로 최대화" + +#: ../libwnck/wnckprop.c:1632 +msgid "unmaximize horizontally" +msgstr "가로 최대화 취소" + +#: ../libwnck/wnckprop.c:1634 +msgid "maximize vertically" +msgstr "세로 최대화" + +#: ../libwnck/wnckprop.c:1636 +msgid "unmaximize vertically" +msgstr "세로 최대화 취소" + +#: ../libwnck/wnckprop.c:1639 +msgid "change workspace" +msgstr "작업 공간 바꾸기" + +#: ../libwnck/wnckprop.c:1641 +msgid "pin" +msgstr "위치 고정" + +#: ../libwnck/wnckprop.c:1643 +msgid "unpin" +msgstr "위치 고정 해제" + +#: ../libwnck/wnckprop.c:1644 +msgid "minimize" +msgstr "최소화" + +#: ../libwnck/wnckprop.c:1645 +msgid "unminimize" +msgstr "최소화 취소" + +#: ../libwnck/wnckprop.c:1646 +msgid "maximize" +msgstr "최대화" + +#: ../libwnck/wnckprop.c:1647 +msgid "unmaximize" +msgstr "최대화 취소" + +#: ../libwnck/wnckprop.c:1649 +msgid "change fullscreen mode" +msgstr "전체 화면 모드 바꾸기" + +#: ../libwnck/wnckprop.c:1650 +msgid "close" +msgstr "닫기" + +#: ../libwnck/wnckprop.c:1652 +msgid "make above" +msgstr "위로 놓기" + +#: ../libwnck/wnckprop.c:1654 +msgid "unmake above" +msgstr "위로 놓기 취소" + +#: ../libwnck/wnckprop.c:1656 +msgid "make below" +msgstr "아래로 놓기" + +#: ../libwnck/wnckprop.c:1658 +msgid "unmake below" +msgstr "아래로 놓기 취소" + +#: ../libwnck/wnckprop.c:1660 +msgid "no action possible" +msgstr "가능한 동작 없음" + +#: ../libwnck/wnckprop.c:1661 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "가능한 동작: %s\n" + +#: ../libwnck/wnckprop.c:1842 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"스크린/작업 공간/창의 속성을 표시하거나 바꿉니다. 혹은 EWMH 명세에 따라 스크" +"린/작업 공간/창과 통신합니다.\n" +"EWMH 명세에 관한 정보는 다음을 참고하십시오:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1852 +msgid "Options to list windows or workspaces" +msgstr "창이나 작업 공간 목록이 들어 있는 옵션" + +#: ../libwnck/wnckprop.c:1853 +msgid "Show options to list windows or workspaces" +msgstr "창이나 작업 공간 목록이 들어 있는 옵션을 표시합니다" + +#: ../libwnck/wnckprop.c:1860 +msgid "Options to modify properties of a window" +msgstr "창의 속성을 수정하는 옵션" + +#: ../libwnck/wnckprop.c:1861 +msgid "Show options to modify properties of a window" +msgstr "창의 속성을 수정하는 옵션 표시" + +#: ../libwnck/wnckprop.c:1868 +msgid "Options to modify properties of a workspace" +msgstr "작업 공간의 속성을 수정하는 옵션" + +#: ../libwnck/wnckprop.c:1869 +msgid "Show options to modify properties of a workspace" +msgstr "작업 공간의 속성을 수정하는 옵션 표시" + +#: ../libwnck/wnckprop.c:1876 +msgid "Options to modify properties of a screen" +msgstr "화면의 속성을 수정하는 옵션" + +#: ../libwnck/wnckprop.c:1877 +msgid "Show options to modify properties of a screen" +msgstr "화면의 속성을 수정하는 옵션 표시" + +#: ../libwnck/wnckprop.c:1888 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "인자를 파싱하는 데 오류가 발생했습니다: %s\n" + +#: ../libwnck/wnckprop.c:1911 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "스크린 %d번과 통신할 수 없습니다: 그 스크린이 없습니다\n" + +#: ../libwnck/wnckprop.c:1967 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "작업 공간 %d번과 통신할 수 없습니다: 그 작업 공간이 없습니다\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:1991 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "\"%s\" 클래스 그룹과 통신할 수 없습니다: 그 클래스 그룹이 없습니다\n" + +#: ../libwnck/wnckprop.c:2014 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" +"그룹 리더의 XID가 %lu인 프로그램과 통신할 수 없습니다: 그 프로그램이 없습니" +"다\n" + +#: ../libwnck/wnckprop.c:2037 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "XID가 %lu인 창과 통신할 수 없습니다: 그 창이 없습니다\n" + +#~ msgid "Use N_ROWS rows" +#~ msgstr "<줄수>만큼의 줄 사용" + +#~ msgid "N_ROWS" +#~ msgstr "<줄수>" + +#~ msgid "Only show current workspace" +#~ msgstr "현재 작업 공간만 표시" + +#~ msgid "Use RTL as default direction" +#~ msgstr "기본 방향으로 RTL 사용" + +#~ msgid "Show workspace names instead of workspace contents" +#~ msgstr "작업 공간 내용이 아니라 작업 공간 이름 표시" + +#~ msgid "Use a vertical orientation" +#~ msgstr "세로 방향 사용" + +#~ msgid "Don't show window in tasklist" +#~ msgstr "작업 목록에서 창 표시하지 않기" + +#~ msgid "Always group windows" +#~ msgstr "항상 창 모으기" + +#~ msgid "Never group windows" +#~ msgstr "창 모으지 않기" + +#~ msgid "Display windows from all workspaces" +#~ msgstr "모든 작업 공간의 창 표시" + +#~ msgid "Enable Transparency" +#~ msgstr "투명 사용" + +#~ msgid "Resource Class: %s\n" +#~ msgstr "리소스 클래스: %s\n" + +#~ msgid "Group Name: %s\n" +#~ msgstr "그룹 이름: %s\n" + +#~ msgid "workspace|none" +#~ msgstr "없음" + +#~ msgid "window|none" +#~ msgstr "없음" + +#~ msgid "startupID|none" +#~ msgstr "없음" diff --git a/po/ku.gmo b/po/ku.gmo new file mode 100644 index 0000000..30ff29c Binary files /dev/null and b/po/ku.gmo differ diff --git a/po/ku.po b/po/ku.po new file mode 100644 index 0000000..55e7ddf --- /dev/null +++ b/po/ku.po @@ -0,0 +1,144 @@ +# translation of libwnck.HEAD.po to Kurdish +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Erdal Ronahi , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-09 13:40+0200\n" +"PO-Revision-Date: 2005-10-15 16:38+0200\n" +"Last-Translator: Erdal Ronahi \n" +"Language-Team: Kurdish \n" +"Language: ku\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10\n" +"Plural-Forms: nplurals=2; plural= n != 1\n" + +#: ../libwnck/application.c:26 +msgid "untitled application" +msgstr "bernameya bênav" + +#: ../libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "Hilbijartina Kargehan" + +#: ../libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "Amûra ji bo derbasbûna nav kargehan" + +#: ../libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Ji bo guherandina kargeha %s v bêitikneî" + +#: ../libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "Paceya Nenas" + +#: ../libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "Paceyên Vekirî Tune" + +#: ../libwnck/selector.c:747 +msgid "Window Selector" +msgstr "Hilbijartina Paceyan" + +#: ../libwnck/selector.c:748 +msgid "Tool to switch between windows" +msgstr "Amûra ji bo derbasbûna nav paceyan" + +#: ../libwnck/tasklist.c:690 +msgid "Window List" +msgstr "Lîsteya paceyan" + +#: ../libwnck/tasklist.c:691 +msgid "Tool to switch between visible windows" +msgstr "Amûra ji bo derbasbûna nav paceyên xuya" + +#: ../libwnck/tasklist.c:2324 +msgid "_Close All" +msgstr "_Hemûyî Bigire" + +#: ../libwnck/tasklist.c:2339 +msgid "_Minimize All" +msgstr "Hemûyî _biçûk bike" + +#: ../libwnck/tasklist.c:2350 +msgid "_Unminimize All" +msgstr "Hemûyî _normal bike" + +#: ../libwnck/window-action-menu.c:211 +msgid "Unmi_nimize" +msgstr "N_ormal bike" + +#: ../libwnck/window-action-menu.c:218 +msgid "Mi_nimize" +msgstr "_Biçûk bike" + +#: ../libwnck/window-action-menu.c:226 +msgid "Unma_ximize" +msgstr "N_ormal bike" + +#: ../libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "_Mezin bike" + +#: ../libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "_Pace bike" + +#: ../libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "_Darik bike" + +#: ../libwnck/window-action-menu.c:256 +msgid "_Only on This Workspace" +msgstr "_Bi tenê ev kargeh" + +#: ../libwnck/window-action-menu.c:263 +msgid "_Always on Visible Workspace" +msgstr "Her dem di kargeha _xuya de" + +#: ../libwnck/window-action-menu.c:378 ../libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "Kargeha %d" + +#: ../libwnck/window-action-menu.c:386 +msgid "Workspace 1_0" +msgstr "Kargeha 1_0" + +#: ../libwnck/window-action-menu.c:388 +#, c-format +msgid "Workspace %s%d" +msgstr "Kargeha %s %d" + +#: ../libwnck/window-action-menu.c:485 +msgid "_Move" +msgstr "_Tevbigere" + +#: ../libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "_Mezinahiyê biguherîne" + +#: ../libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "_Bigire" + +#: ../libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "_Derbasa kargeheke din bike" + +#: ../libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../libwnck/window.c:32 +msgid "untitled window" +msgstr "paceya bênav" + diff --git a/po/ky.gmo b/po/ky.gmo new file mode 100644 index 0000000..6b881af Binary files /dev/null and b/po/ky.gmo differ diff --git a/po/ky.po b/po/ky.po new file mode 100644 index 0000000..54e7a5d --- /dev/null +++ b/po/ky.po @@ -0,0 +1,144 @@ +# translation of libwnck.HEAD.po to Kirghiz +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Ilyas Bakirov , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck.HEAD\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-11-01 06:24+0100\n" +"PO-Revision-Date: 2005-11-01 22:48+0500\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz\n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#: ../libwnck/application.c:26 +msgid "untitled application" +msgstr "атсыз иштеме" + +#: ../libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "Иштөө жерлердин өткөргүчү" + +#: ../libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "Иштөө жерлер арасында өтүү аспабы" + +#: ../libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "%s иштөө жерине өтүү үчүн басыңыз" + +#: ../libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "Белгисиз терезе" + +#: ../libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "Ачык терезе жок" + +#: ../libwnck/selector.c:747 +msgid "Window Selector" +msgstr "Терезелердин өткөргүчү" + +#: ../libwnck/selector.c:748 +msgid "Tool to switch between windows" +msgstr "Терезелер арасында өтүү аспабы" + +#: ../libwnck/tasklist.c:705 +msgid "Window List" +msgstr "Терезелер тизмеси" + +#: ../libwnck/tasklist.c:706 +msgid "Tool to switch between visible windows" +msgstr "Көрүнгөн терезелер арасында өтүү аспабы" + +#: ../libwnck/tasklist.c:2390 +msgid "_Close All" +msgstr "_Бардыгын жабуу" + +#: ../libwnck/tasklist.c:2405 +msgid "_Minimize All" +msgstr "_Бардыгын кичирейтүү" + +#: ../libwnck/tasklist.c:2416 +msgid "_Unminimize All" +msgstr "_Бардыгын чоңойтуу" + +#: ../libwnck/window-action-menu.c:211 +msgid "Unmi_nimize" +msgstr "_Чоңойтуу" + +#: ../libwnck/window-action-menu.c:218 +msgid "Mi_nimize" +msgstr "_Кичирейтүү" + +#: ../libwnck/window-action-menu.c:226 +#, fuzzy +msgid "Unma_ximize" +msgstr "Мурдагы _абалын калыбына келтирүү" + +#: ../libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "Толук _экранга чоңойтуу" + +#: ../libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "" + +#: ../libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "" + +#: ../libwnck/window-action-menu.c:256 +msgid "_Only on This Workspace" +msgstr "_Бул иштөө столунда гана" + +#: ../libwnck/window-action-menu.c:263 +msgid "_Always on Visible Workspace" +msgstr "_Ар дайым көрүнгөн иш столунда" + +#: ../libwnck/window-action-menu.c:378 ../libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "%d иштөө жери" + +#: ../libwnck/window-action-menu.c:386 +msgid "Workspace 1_0" +msgstr "1_0 иштөө жери" + +#: ../libwnck/window-action-menu.c:388 +#, c-format +msgid "Workspace %s%d" +msgstr "%s%d иштөө жери" + +#: ../libwnck/window-action-menu.c:485 +msgid "_Move" +msgstr "Жы_лдыруу" + +#: ../libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "_Чоңдугун өзгөртүү" + +#: ../libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "_Жабуу" + +#: ../libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "Башка _Иштөө жерге жылдыруу" + +#: ../libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "%s" + +#: ../libwnck/window.c:32 +msgid "untitled window" +msgstr "атсыз терезе" + diff --git a/po/li.gmo b/po/li.gmo new file mode 100644 index 0000000..cda8c58 Binary files /dev/null and b/po/li.gmo differ diff --git a/po/li.po b/po/li.po new file mode 100644 index 0000000..7db0ff9 --- /dev/null +++ b/po/li.po @@ -0,0 +1,151 @@ +# Limburgish translation of libwnck. +# Copyright (C) 2002 Free Software Foundation, Inc. +# Mathieu van Woerkom , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: libwnck\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-09-05 11:49+0200\n" +"PO-Revision-Date: 2003-06-05 13:25+0100\n" +"Last-Translator: Mathieu van Woerkom \n" +"Language-Team: Limburgish\n" +"Language: li\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: libwnck/application.c:26 +msgid "untitled application" +msgstr "naamloeze toepassing" + +#: libwnck/pager-accessible.c:318 +msgid "Workspace Switcher" +msgstr "Wirkblaadwisselaar" + +#: libwnck/pager-accessible.c:329 +msgid "Tool to switch between workspaces" +msgstr "Hulpke veur tösje versjillige wirkblajer te wissele" + +#: libwnck/pager-accessible.c:433 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Klik hie veur te wissele nao wirkblaad %s" + +#: libwnck/selector.c:218 +msgid "Unknown Window" +msgstr "" + +#: libwnck/selector.c:645 +msgid "No Windows Open" +msgstr "" + +#: libwnck/selector.c:747 +msgid "Window Selector" +msgstr "" + +#: libwnck/selector.c:748 +#, fuzzy +msgid "Tool to switch between windows" +msgstr "Hulpke veur tösje versjillige wirkblajer te wissele" + +#: libwnck/tasklist.c:690 +msgid "Window List" +msgstr "" + +#: libwnck/tasklist.c:691 +#, fuzzy +msgid "Tool to switch between visible windows" +msgstr "Hulpke veur tösje versjillige wirkblajer te wissele" + +#: libwnck/tasklist.c:2324 +#, fuzzy +msgid "_Close All" +msgstr "_Sjloete" + +#: libwnck/tasklist.c:2339 +#, fuzzy +msgid "_Minimize All" +msgstr "_Minimalisere" + +#: libwnck/tasklist.c:2350 +#, fuzzy +msgid "_Unminimize All" +msgstr "_Hersjtèlle" + +#: libwnck/window-action-menu.c:211 +msgid "Unmi_nimize" +msgstr "_Hersjtèlle" + +#: libwnck/window-action-menu.c:218 +msgid "Mi_nimize" +msgstr "_Minimalisere" + +#: libwnck/window-action-menu.c:226 +msgid "Unma_ximize" +msgstr "_Hersjtèlle" + +#: libwnck/window-action-menu.c:233 +msgid "Ma_ximize" +msgstr "Ma_ximalisere" + +#: libwnck/window-action-menu.c:241 +msgid "_Unroll" +msgstr "_Oetrolle" + +#: libwnck/window-action-menu.c:248 +msgid "Roll _Up" +msgstr "_Oprolle" + +#: libwnck/window-action-menu.c:256 +#, fuzzy +msgid "_Only on This Workspace" +msgstr "Allein op dit _wirkblaad" + +#: libwnck/window-action-menu.c:263 +#, fuzzy +msgid "_Always on Visible Workspace" +msgstr "Allein op dit _wirkblaad" + +#: libwnck/window-action-menu.c:378 libwnck/workspace.c:236 +#, c-format +msgid "Workspace %d" +msgstr "Wirkblaad %d" + +#: libwnck/window-action-menu.c:386 +#, fuzzy +msgid "Workspace 1_0" +msgstr "Wirkblaad %d" + +#: libwnck/window-action-menu.c:388 +#, fuzzy, c-format +msgid "Workspace %s%d" +msgstr "Wirkblaad %d" + +#: libwnck/window-action-menu.c:485 +msgid "_Move" +msgstr "_Verplaatse" + +#: libwnck/window-action-menu.c:492 +msgid "_Resize" +msgstr "Aafmaetinge _verangere" + +#: libwnck/window-action-menu.c:505 +msgid "_Close" +msgstr "_Sjloete" + +#: libwnck/window-action-menu.c:518 +msgid "Move to Another _Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:542 +#, c-format +msgid "%s" +msgstr "" + +#: libwnck/window.c:32 +msgid "untitled window" +msgstr "naamloes vinster" + +#~ msgid "Put on _All Workspaces" +#~ msgstr "Op _alle wirkblajer tuine" diff --git a/po/libwnck-3.0.pot b/po/libwnck-3.0.pot new file mode 100644 index 0000000..1efe5c1 --- /dev/null +++ b/po/libwnck-3.0.pot @@ -0,0 +1,1176 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR libwnck contributors +# This file is distributed under the same license as the libwnck package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: libwnck 3.24.0\n" +"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2017-06-29 07:29+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: libwnck/application.c:49 +msgid "Untitled application" +msgstr "" + +#: libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "" + +#: libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "" + +#: libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "" + +#: libwnck/pager.c:2192 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "" + +#: libwnck/pager.c:2195 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "" + +#: libwnck/pager.c:2200 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "" + +#: libwnck/selector.c:1092 +msgid "No Windows Open" +msgstr "" + +#: libwnck/selector.c:1148 +msgid "Window Selector" +msgstr "" + +#: libwnck/selector.c:1149 +msgid "Tool to switch between windows" +msgstr "" + +#: libwnck/tasklist.c:597 +msgid "Window List" +msgstr "" + +#: libwnck/tasklist.c:598 +msgid "Tool to switch between visible windows" +msgstr "" + +#: libwnck/tasklist.c:2985 +msgid "Mi_nimize All" +msgstr "" + +#: libwnck/tasklist.c:2993 +msgid "Un_minimize All" +msgstr "" + +#: libwnck/tasklist.c:3001 +msgid "Ma_ximize All" +msgstr "" + +#: libwnck/tasklist.c:3009 +msgid "_Unmaximize All" +msgstr "" + +#: libwnck/tasklist.c:3021 +msgid "_Close All" +msgstr "" + +#: libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "" + +#: libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "" + +#: libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "" + +#: libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "" + +#: libwnck/window-action-menu.c:693 libwnck/workspace.c:268 +#, c-format +msgid "Workspace %d" +msgstr "" + +#: libwnck/window-action-menu.c:702 libwnck/window-action-menu.c:848 +msgid "Workspace 1_0" +msgstr "" + +#: libwnck/window-action-menu.c:704 libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "" + +#: libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "" + +#: libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "" + +#: libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "" + +#: libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "" + +#: libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "" + +#: libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "" + +#: libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "" + +#: libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "" + +#: libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: libwnck/window.c:47 +msgid "Untitled window" +msgstr "" + +#: libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "" + +#: libwnck/wnckprop.c:137 libwnck/wnckprop.c:144 libwnck/wnckprop.c:154 +msgid "XID" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "" + +#: libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "" + +#: libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "" + +#: libwnck/wnckprop.c:150 libwnck/wnckprop.c:152 libwnck/wnckprop.c:170 +#: libwnck/wnckprop.c:172 libwnck/wnckprop.c:174 libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "" + +#: libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "" + +#: libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" + +#: libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" + +#: libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "" + +#: libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "" + +#: libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "" + +#: libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "" + +#: libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "" + +#: libwnck/wnckprop.c:183 libwnck/wnckprop.c:273 +msgid "X" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "" + +#: libwnck/wnckprop.c:188 libwnck/wnckprop.c:275 +msgid "Y" +msgstr "" + +#: libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "" + +#: libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "" + +#: libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "" + +#: libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "" + +#: libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "" + +#: libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "" + +#: libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "" + +#: libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "" + +#: libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "" + +#: libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "" + +#: libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "" + +#: libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "" + +#: libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "" + +#: libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "" + +#: libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "" + +#: libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "" + +#: libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "" + +#: libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "" + +#: libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "" + +#: libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "" + +#: libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "" + +#: libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "" + +#: libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "" + +#: libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "" + +#: libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "" + +#: libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "" + +#: libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "" + +#: libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "" + +#: libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "" + +#. Translators: do not translate "normal, desktop, dock..." +#: libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" + +#: libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "" + +#: libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "" + +#: libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "" + +#: libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "" + +#: libwnck/wnckprop.c:384 libwnck/wnckprop.c:408 libwnck/wnckprop.c:444 +#: libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "" + +#: libwnck/wnckprop.c:501 libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:533 libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:613 libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" + +#: libwnck/wnckprop.c:641 libwnck/wnckprop.c:722 libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "" + +#: libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" + +#: libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" + +#: libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "" + +#: libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:863 +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:898 +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: libwnck/wnckprop.c:905 +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: libwnck/wnckprop.c:941 libwnck/wnckprop.c:950 libwnck/wnckprop.c:959 +#: libwnck/wnckprop.c:966 libwnck/wnckprop.c:976 libwnck/wnckprop.c:983 +#: libwnck/wnckprop.c:992 libwnck/wnckprop.c:1041 +msgid "Action not allowed\n" +msgstr "" + +#: libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: libwnck/wnckprop.c:1101 libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "" + +#. Translators: %d is a workspace number and %s a workspace name +#: libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1189 libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1209 libwnck/wnckprop.c:1266 libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "" + +#. Translators: %d is a workspace number and %s a workspace name +#: libwnck/wnckprop.c:1215 libwnck/wnckprop.c:1296 libwnck/wnckprop.c:1308 +#: libwnck/wnckprop.c:1320 libwnck/wnckprop.c:1332 libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "" + +#. Translators: "none" here means "no workspace" +#: libwnck/wnckprop.c:1220 libwnck/wnckprop.c:1301 libwnck/wnckprop.c:1313 +#: libwnck/wnckprop.c:1325 libwnck/wnckprop.c:1337 libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "" + +#: libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "" + +#. Translators: "none" here means "no window" +#: libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "" + +#: libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1248 +msgid "true" +msgstr "" + +#: libwnck/wnckprop.c:1248 +msgid "false" +msgstr "" + +#: libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1267 libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: libwnck/wnckprop.c:1351 libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "" + +#. Translators: 'set' in the sense of "something has been set". +#: libwnck/wnckprop.c:1361 libwnck/wnckprop.c:1385 libwnck/wnckprop.c:1439 +msgid "set" +msgstr "" + +#. Translators: 'unset' in the sense of "something has not been set". +#: libwnck/wnckprop.c:1364 libwnck/wnckprop.c:1388 libwnck/wnckprop.c:1395 +#: libwnck/wnckprop.c:1425 libwnck/wnckprop.c:1432 libwnck/wnckprop.c:1442 +#: libwnck/wnckprop.c:1507 libwnck/wnckprop.c:1516 libwnck/wnckprop.c:1528 +#: libwnck/wnckprop.c:1536 libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: libwnck/wnckprop.c:1365 libwnck/wnckprop.c:1389 libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1368 libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "" + +#: libwnck/wnckprop.c:1380 libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: libwnck/wnckprop.c:1381 libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1396 libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "" + +#. Translators: "none" here means "no startup ID" +#: libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "" + +#: libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "" + +#: libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "" + +#: libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "" + +#: libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "" + +#: libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "" + +#: libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "" + +#: libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "" + +#: libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "" + +#: libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "" + +#: libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "" + +#: libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1544 +#, c-format +msgid "Role: %s\n" +msgstr "" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: libwnck/wnckprop.c:1572 libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: libwnck/wnckprop.c:1576 libwnck/wnckprop.c:1622 +msgid ", " +msgstr "" + +#: libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "" + +#: libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "" + +#: libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "" + +#: libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "" + +#: libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "" + +#: libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "" + +#: libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "" + +#: libwnck/wnckprop.c:1594 +msgid "above" +msgstr "" + +#: libwnck/wnckprop.c:1595 +msgid "below" +msgstr "" + +#: libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "" + +#: libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "" + +#: libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "" + +#: libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1629 +msgid "move" +msgstr "" + +#: libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "" + +#: libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "" + +#: libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "" + +#: libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "" + +#: libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "" + +#: libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "" + +#: libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "" + +#: libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "" + +#: libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "" + +#: libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "" + +#: libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "" + +#: libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "" + +#: libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "" + +#: libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "" + +#: libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "" + +#: libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "" + +#: libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "" + +#: libwnck/wnckprop.c:1656 +msgid "close" +msgstr "" + +#: libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "" + +#: libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "" + +#: libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "" + +#: libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "" + +#: libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "" + +#: libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1866 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" + +#: libwnck/wnckprop.c:1876 +msgid "Options to list windows or workspaces" +msgstr "" + +#: libwnck/wnckprop.c:1877 +msgid "Show options to list windows or workspaces" +msgstr "" + +#: libwnck/wnckprop.c:1884 +msgid "Options to modify properties of a window" +msgstr "" + +#: libwnck/wnckprop.c:1885 +msgid "Show options to modify properties of a window" +msgstr "" + +#: libwnck/wnckprop.c:1892 +msgid "Options to modify properties of a workspace" +msgstr "" + +#: libwnck/wnckprop.c:1893 +msgid "Show options to modify properties of a workspace" +msgstr "" + +#: libwnck/wnckprop.c:1900 +msgid "Options to modify properties of a screen" +msgstr "" + +#: libwnck/wnckprop.c:1901 +msgid "Show options to modify properties of a screen" +msgstr "" + +#: libwnck/wnckprop.c:1912 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "" + +#: libwnck/wnckprop.c:1935 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "" + +#: libwnck/wnckprop.c:1991 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: libwnck/wnckprop.c:2015 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "" + +#: libwnck/wnckprop.c:2038 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "" + +#: libwnck/wnckprop.c:2061 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "" diff --git a/po/lt.gmo b/po/lt.gmo new file mode 100644 index 0000000..e578913 Binary files /dev/null and b/po/lt.gmo differ diff --git a/po/lt.po b/po/lt.po new file mode 100644 index 0000000..5cb6146 --- /dev/null +++ b/po/lt.po @@ -0,0 +1,1234 @@ +# translation of lt.po to Lithuanian +# Lithuanian translation of libwnck. +# Copyright (C) 2003-2007, 2008 Free Software Foundation, Inc. +# +# Tomas Kuliavas , 2003-2004. +# Žygimantas Beručka , 2005-2007. +# Gintautas Miliauskas , 2007, 2008. +# Aurimas Černius , 2013. +# +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2016-01-13 15:38+0000\n" +"PO-Revision-Date: 2016-01-08 23:56+0200\n" +"Last-Translator: Aurimas Černius \n" +"Language-Team: Lietuvių \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.6\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:49 +msgid "Untitled application" +msgstr "Nepavadinta programa" + +#: ../libwnck/pager-accessible.c:340 +msgid "Workspace Switcher" +msgstr "Darbo sričių perjungiklis" + +#: ../libwnck/pager-accessible.c:351 +msgid "Tool to switch between workspaces" +msgstr "Įrankis leidžiantis persijungti tarp darbo sričių" + +#: ../libwnck/pager-accessible.c:463 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Spustelėkite norėdami perjungti į darbo sritį %s" + +#: ../libwnck/pager.c:2151 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Spustelėkite norėdami vilkti „%s“" + +#: ../libwnck/pager.c:2154 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Dabartinė darbo sritis: „%s“" + +#: ../libwnck/pager.c:2159 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Spustelėkite norėdami perjungti į „%s“" + +#: ../libwnck/selector.c:1186 +msgid "No Windows Open" +msgstr "Nėra atvertų langų" + +#: ../libwnck/selector.c:1242 +msgid "Window Selector" +msgstr "Langų parinkiklis" + +#: ../libwnck/selector.c:1243 +msgid "Tool to switch between windows" +msgstr "Įrankis leidžiantis persijungti tarp langų" + +#: ../libwnck/tasklist.c:601 +msgid "Window List" +msgstr "Langų sąrašas" + +#: ../libwnck/tasklist.c:602 +msgid "Tool to switch between visible windows" +msgstr "Įrankis leidžiantis persijungti tarp matomų langų" + +#: ../libwnck/tasklist.c:2981 +msgid "Mi_nimize All" +msgstr "_Sumažinti visus" + +#: ../libwnck/tasklist.c:2989 +msgid "Un_minimize All" +msgstr "Grąži_nti visus iš sumažinimo" + +#: ../libwnck/tasklist.c:2997 +msgid "Ma_ximize All" +msgstr "Iš_didinti visus" + +#: ../libwnck/tasklist.c:3005 +msgid "_Unmaximize All" +msgstr "Grąži_nti visus iš sumažinimo" + +#: ../libwnck/tasklist.c:3017 +msgid "_Close All" +msgstr "_Užverti visus" + +#: ../libwnck/window-action-menu.c:368 +msgid "Unmi_nimize" +msgstr "G_rąžinti iš sumažinimo" + +#: ../libwnck/window-action-menu.c:374 +msgid "Mi_nimize" +msgstr "Sumaži_nti" + +#: ../libwnck/window-action-menu.c:381 +msgid "Unma_ximize" +msgstr "_Grąžinti iš išdidinimo" + +#: ../libwnck/window-action-menu.c:387 +msgid "Ma_ximize" +msgstr "Iš_didinti" + +#: ../libwnck/window-action-menu.c:693 ../libwnck/workspace.c:271 +#, c-format +msgid "Workspace %d" +msgstr "Darbo sritis %d" + +#: ../libwnck/window-action-menu.c:702 ../libwnck/window-action-menu.c:848 +#, c-format +msgid "Workspace 1_0" +msgstr "1_0-ta darbo sritis" + +#: ../libwnck/window-action-menu.c:704 ../libwnck/window-action-menu.c:850 +#, c-format +msgid "Workspace %s%d" +msgstr "%s%d darbo sritis" + +#: ../libwnck/window-action-menu.c:991 +msgid "_Move" +msgstr "_Perkelti" + +#: ../libwnck/window-action-menu.c:997 +msgid "_Resize" +msgstr "_Keisti dydį" + +#: ../libwnck/window-action-menu.c:1005 +msgid "Always On _Top" +msgstr "Visada virš_uje" + +#: ../libwnck/window-action-menu.c:1013 +msgid "_Always on Visible Workspace" +msgstr "_Visada matomoje darbo srityje" + +#: ../libwnck/window-action-menu.c:1018 +msgid "_Only on This Workspace" +msgstr "_Tik šioje darbo srityje" + +#: ../libwnck/window-action-menu.c:1025 +msgid "Move to Workspace _Left" +msgstr "Perkelti į darbo sritį _kairėje" + +#: ../libwnck/window-action-menu.c:1030 +msgid "Move to Workspace R_ight" +msgstr "Perkelti į darbo sritį _dešinėje" + +#: ../libwnck/window-action-menu.c:1035 +msgid "Move to Workspace _Up" +msgstr "Perkelti į darbo sritį _viršuje" + +#: ../libwnck/window-action-menu.c:1040 +msgid "Move to Workspace _Down" +msgstr "Perkelti į darbo sritį _apačioje" + +#: ../libwnck/window-action-menu.c:1042 +msgid "Move to Another _Workspace" +msgstr "Perkelti į kitą _darbo sritį" + +#: ../libwnck/window-action-menu.c:1062 +msgid "_Close" +msgstr "_Užverti" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:47 +msgid "Untitled window" +msgstr "Nepavadintas langas" + +#: ../libwnck/wnckprop.c:137 +msgid "X window ID of the window to examine or modify" +msgstr "Tikrinamo ar keičiamo lango „X window ID“" + +#: ../libwnck/wnckprop.c:137 ../libwnck/wnckprop.c:144 +#: ../libwnck/wnckprop.c:154 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:143 +msgid "X window ID of the group leader of an application to examine" +msgstr "Tikrinamo lango grupės lyderio X lango ID" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:148 +msgid "Class resource of the class group to examine" +msgstr "Tikrinamos klasės grupės klasės resursas" + +#: ../libwnck/wnckprop.c:148 +msgid "CLASS" +msgstr "KLASĖ" + +#: ../libwnck/wnckprop.c:150 +msgid "NUMBER of the workspace to examine or modify" +msgstr "Tikrinamos ar keičiamos darbo srities NUMERIS" + +#: ../libwnck/wnckprop.c:150 ../libwnck/wnckprop.c:152 +#: ../libwnck/wnckprop.c:170 ../libwnck/wnckprop.c:172 +#: ../libwnck/wnckprop.c:174 ../libwnck/wnckprop.c:271 +msgid "NUMBER" +msgstr "NUMERIS" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the screen to examine or modify" +msgstr "Tikrinamo ar keičiamo ekrano NUMERIS" + +#: ../libwnck/wnckprop.c:154 +msgid "Alias of --window" +msgstr "Sinonimas --window" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:162 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Išvesti programos/klasės grupės/darbo srities/ekrano langus (išvedimo " +"formatas: „XID: Lango pavadinimas“)" + +#: ../libwnck/wnckprop.c:164 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Išvesti ekrano darbo sričių sąrašą (išvedimo formatas: „Skaičius: Darbo " +"srities pavadinimas“)" + +#: ../libwnck/wnckprop.c:170 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Pakeisti ekrano darbo sričių skaičių į SKAIČIŲ" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Pakeisti darbo sričių išdėstymą, kad naudotų SKAIČIŲ eilučių" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Pakeisti darbo sričių išdėstymą, kad naudotų SKAIČIŲ stulpelių" + +#: ../libwnck/wnckprop.c:176 +msgid "Show the desktop" +msgstr "Rodyti darbalaukį" + +#: ../libwnck/wnckprop.c:178 +msgid "Stop showing the desktop" +msgstr "Neberodyti darbalaukio" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:183 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Pastumti esamos darbo srities rodomą sritį į nurodytą X koordinatę" + +#: ../libwnck/wnckprop.c:183 ../libwnck/wnckprop.c:273 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:188 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Pastumti esamos darbo srities rodomą sritį į nurodytą Y koordinatę" + +#: ../libwnck/wnckprop.c:188 ../libwnck/wnckprop.c:275 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:194 +msgid "Minimize the window" +msgstr "Sumažinti langą" + +#: ../libwnck/wnckprop.c:196 +msgid "Unminimize the window" +msgstr "Grąžinti langą iš sumažinimo" + +#: ../libwnck/wnckprop.c:198 +msgid "Maximize the window" +msgstr "Išdidinti langą" + +#: ../libwnck/wnckprop.c:200 +msgid "Unmaximize the window" +msgstr "Grąžinti langą iš išdidinimo" + +#: ../libwnck/wnckprop.c:202 +msgid "Maximize horizontally the window" +msgstr "Horizontaliai išdidinti langą" + +#: ../libwnck/wnckprop.c:204 +msgid "Unmaximize horizontally the window" +msgstr "Grąžinti langą iš horizontalaus išdidinimo" + +#: ../libwnck/wnckprop.c:206 +msgid "Maximize vertically the window" +msgstr "Vertikaliai išdidinti langą" + +#: ../libwnck/wnckprop.c:208 +msgid "Unmaximize vertically the window" +msgstr "Grąžinti langą iš vertikalaus išdidinimo" + +#: ../libwnck/wnckprop.c:210 +msgid "Start moving the window via the keyboard" +msgstr "Pradėti slinkti langą klaviatūrą" + +#: ../libwnck/wnckprop.c:212 +msgid "Start resizing the window via the keyboard" +msgstr "Pradėti keisti lango dydį klaviatūra" + +#: ../libwnck/wnckprop.c:214 +msgid "Activate the window" +msgstr "Aktyvuoti langą" + +#: ../libwnck/wnckprop.c:216 +msgid "Close the window" +msgstr "Užverti langą" + +#: ../libwnck/wnckprop.c:219 +msgid "Make the window fullscreen" +msgstr "Rodyti langą per visą ekraną" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window quit fullscreen mode" +msgstr "Grąžinti langą iš pilno ekrano būsenos" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window always on top" +msgstr "Visada rodyti langą viršuje" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window not always on top" +msgstr "Grąžinti langą iš visada-viršuje būsenos" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window below other windows" +msgstr "Pakišti langą po kitais langais" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window not below other windows" +msgstr "Grąžinti langą iš po-kitais-langais būsenos" + +#: ../libwnck/wnckprop.c:231 +msgid "Shade the window" +msgstr "Suvynioti langą" + +#: ../libwnck/wnckprop.c:233 +msgid "Unshade the window" +msgstr "Išvynioti langą" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:238 +msgid "Make the window have a fixed position in the viewport" +msgstr "Nustatyti lango fiksuotą poziciją rodomoje srityje" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:243 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Atšaukti lango fiksuotos pozicijos rodomoje srityje nustatymą" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:250 +msgid "Make the window not appear in pagers" +msgstr "Nerodyti lango darbo sričių perjungiklyje" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:257 +msgid "Make the window appear in pagers" +msgstr "Rodyti langą darbo sričių perjungiklyje" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:261 +msgid "Make the window not appear in tasklists" +msgstr "Nerodyti lango užduočių juostoje" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:265 +msgid "Make the window appear in tasklists" +msgstr "Rodyti langą užduočių juostoje" + +#: ../libwnck/wnckprop.c:267 +msgid "Make the window visible on all workspaces" +msgstr "Padaryti langą matomu visose darbo srityse" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on the current workspace only" +msgstr "Padaryti langą matomu tik vienoje darbo srityje" + +#: ../libwnck/wnckprop.c:271 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Perkelti langą į darbo sritį NUMERIS (pirmoji darbo sritis yra 0)" + +#: ../libwnck/wnckprop.c:273 +msgid "Change the X coordinate of the window to X" +msgstr "Pakeisti lango X koordinatę į X" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the Y coordinate of the window to Y" +msgstr "Pakeisti lango Y koordinatę į Y" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the width of the window to WIDTH" +msgstr "Nustatyti lango plotį: PLOTIS" + +#: ../libwnck/wnckprop.c:277 +msgid "WIDTH" +msgstr "PLOTIS" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the height of the window to HEIGHT" +msgstr "Nustatyti lango aukštį: AUKŠTIS" + +#: ../libwnck/wnckprop.c:279 +msgid "HEIGHT" +msgstr "AUKŠTIS" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:282 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Pakeisti lango tipą į TIPĄ (galimos reikšmės: normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:282 +msgid "TYPE" +msgstr "TIPAS" + +#: ../libwnck/wnckprop.c:288 +msgid "Change the name of the workspace to NAME" +msgstr "Nustatyti darbo srities pavadinimą į VARDAS" + +#: ../libwnck/wnckprop.c:288 +msgid "NAME" +msgstr "VARDAS" + +#: ../libwnck/wnckprop.c:290 +msgid "Activate the workspace" +msgstr "Aktyvuoti darbo sritį" + +#: ../libwnck/wnckprop.c:384 ../libwnck/wnckprop.c:408 +#: ../libwnck/wnckprop.c:444 ../libwnck/wnckprop.c:467 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Netinkama --%s reikšmė „%s“" + +#: ../libwnck/wnckprop.c:501 ../libwnck/wnckprop.c:520 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti keičiamas ekranas %d, bet nurodyta --" +"%s\n" + +#: ../libwnck/wnckprop.c:510 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti išvedamas ekrano %d langų ar darbo " +"sričių sąrašas, bet nurodyta --%s\n" + +#: ../libwnck/wnckprop.c:533 ../libwnck/wnckprop.c:553 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti keičiama darbo sritis %d, bet nurodyta " +"--%s\n" + +#: ../libwnck/wnckprop.c:543 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti išvedamas darbo srities %d langų " +"sąrašas, bet nurodyta --%s\n" + +#: ../libwnck/wnckprop.c:565 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti keičiama programa, bet nurodyta --%s\n" + +#: ../libwnck/wnckprop.c:575 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti išvedamas programos langų sąrašas, bet " +"nurodyta --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:589 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti keičiama klasių grupė „%s“, bet " +"nurodyta --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:601 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti išvedamas klasių grupės „%s“ langų " +"sąrašas, bet nurodyta --%s\n" + +#: ../libwnck/wnckprop.c:613 ../libwnck/wnckprop.c:622 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Nesuderinami parametrai: turėtų būti keičiamas langas, bet nurodyta --%s\n" + +#: ../libwnck/wnckprop.c:641 ../libwnck/wnckprop.c:722 +#: ../libwnck/wnckprop.c:769 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Nesuderinami parametrai: --%s ir --%s\n" + +#: ../libwnck/wnckprop.c:680 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Netaisyklingas argumentas „%d“ parametrui --%s: argumentas turi būti " +"teigiamas skaičius\n" + +#: ../libwnck/wnckprop.c:693 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Netaisyklingas argumentas „%d“ parametrui --%s: argumentas turi būti " +"neneigiamas skaičius\n" + +#: ../libwnck/wnckprop.c:788 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Nesuderinami parametrai: --%s arba --%s ir --%s\n" + +#: ../libwnck/wnckprop.c:820 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Netaisyklingas argumentas „%s“ parametrui --%s, galimos reikšmės: %s\n" + +#: ../libwnck/wnckprop.c:863 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Nepavyko pakeisti darbo sričių išsidėstymo ekrane: išsidėstymas jau turi " +"savininką\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:898 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "" +"Rodoma sritis negali būti pastumta: esamoje darbo srityje nėra rodomos " +"srities\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:905 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Rodoma sritis negali būti pastumta: nėra esamos darbo srities\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:941 ../libwnck/wnckprop.c:950 +#: ../libwnck/wnckprop.c:959 ../libwnck/wnckprop.c:966 +#: ../libwnck/wnckprop.c:976 ../libwnck/wnckprop.c:983 +#: ../libwnck/wnckprop.c:992 ../libwnck/wnckprop.c:1041 +#, c-format +msgid "Action not allowed\n" +msgstr "Veiksmas neleidžiamas\n" + +#: ../libwnck/wnckprop.c:1037 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Nepavyko perkelti lango į darbo sritį %d: tokios darbo srities nėra\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1101 ../libwnck/wnckprop.c:1233 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1104 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1124 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1187 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ekrano numeris: %d\n" + +#: ../libwnck/wnckprop.c:1189 ../libwnck/wnckprop.c:1270 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Geometrija (plotis, aukštis): %d, %d\n" + +#: ../libwnck/wnckprop.c:1193 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Darbo sričių skaičius: %d\n" + +#: ../libwnck/wnckprop.c:1199 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "" +"Darbo sričių išdėstymas (eilutės, stulpeliai, orientacija): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1209 ../libwnck/wnckprop.c:1266 +#: ../libwnck/wnckprop.c:1463 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1210 +#, c-format +msgid "Window Manager: %s\n" +msgstr "Langų tvarkytuvė: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1215 ../libwnck/wnckprop.c:1296 +#: ../libwnck/wnckprop.c:1308 ../libwnck/wnckprop.c:1320 +#: ../libwnck/wnckprop.c:1332 ../libwnck/wnckprop.c:1448 +#, c-format +msgid "%d (\"%s\")" +msgstr "%d („%s“)" + +#. Translators: "none" here means "no workspace" +#: ../libwnck/wnckprop.c:1220 ../libwnck/wnckprop.c:1301 +#: ../libwnck/wnckprop.c:1313 ../libwnck/wnckprop.c:1325 +#: ../libwnck/wnckprop.c:1337 ../libwnck/wnckprop.c:1455 +msgctxt "workspace" +msgid "none" +msgstr "jokia" + +#: ../libwnck/wnckprop.c:1221 +#, c-format +msgid "Active Workspace: %s\n" +msgstr "Aktyvi darbo sritis: %s\n" + +#: ../libwnck/wnckprop.c:1230 +#, c-format +msgid "\"%s\"" +msgstr "„%s“" + +#. Translators: %lu is a window identifier (number) and %s a window name +#: ../libwnck/wnckprop.c:1236 +#, c-format +msgid "%lu (%s)" +msgstr "%lu (%s)" + +#. Translators: "none" here means "no window" +#: ../libwnck/wnckprop.c:1242 +msgctxt "window" +msgid "none" +msgstr "jokio" + +#: ../libwnck/wnckprop.c:1243 +#, c-format +msgid "Active Window: %s\n" +msgstr "Aktyvus langas: %s\n" + +#: ../libwnck/wnckprop.c:1246 +#, c-format +msgid "Showing the desktop: %s\n" +msgstr "Rodomas darbalaukis: %s\n" + +#: ../libwnck/wnckprop.c:1248 +msgid "true" +msgstr "teigiama" + +#: ../libwnck/wnckprop.c:1248 +msgid "false" +msgstr "neigiama" + +#: ../libwnck/wnckprop.c:1259 +#, c-format +msgid "Workspace Name: %s\n" +msgstr "Darbo srities pavadinimas: %s\n" + +#: ../libwnck/wnckprop.c:1260 +#, c-format +msgid "Workspace Number: %d\n" +msgstr "Darbo srities numeris: %d\n" + +#: ../libwnck/wnckprop.c:1267 ../libwnck/wnckprop.c:1464 +#, c-format +msgid "On Screen: %d (Window Manager: %s)\n" +msgstr "Ekrane: %d (langų tvarkytuvė: %s)\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1282 +msgid "" +msgstr "" + +#. Translators: 'viewport' is kind of the viewable area. A viewport can be +#. * used to implement workspaces (e.g. compiz is an example); however it is +#. * not just the current workspace. +#: ../libwnck/wnckprop.c:1286 +#, c-format +msgid "Viewport position (x, y): %s\n" +msgstr "Rodomos srities pozicija (x, y): %s\n" + +#: ../libwnck/wnckprop.c:1289 +#, c-format +msgid "Position in Layout (row, column): %d, %d\n" +msgstr "Pozicija išsidėstyme (eilutė, stulpelis): %d, %d\n" + +#: ../libwnck/wnckprop.c:1302 +#, c-format +msgid "Left Neighbor: %s\n" +msgstr "Kairysis kaimynas: %s\n" + +#: ../libwnck/wnckprop.c:1314 +#, c-format +msgid "Right Neighbor: %s\n" +msgstr "Dešinysis kaimynas: %s\n" + +#: ../libwnck/wnckprop.c:1326 +#, c-format +msgid "Top Neighbor: %s\n" +msgstr "Viršutinis kaimynas: %s\n" + +#: ../libwnck/wnckprop.c:1338 +#, c-format +msgid "Bottom Neighbor: %s\n" +msgstr "Apatinis kaimynas: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1351 ../libwnck/wnckprop.c:1510 +#, c-format +msgid "Class Group ID: %s\n" +msgstr "Klasių grupės ID: %s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. +#: ../libwnck/wnckprop.c:1355 +#, c-format +msgid "Class Group Name: %s\n" +msgstr "Klasių grupės pavadinimas: %s\n" + +#. Translators: 'set' in the sense of "something has been set". +#: ../libwnck/wnckprop.c:1361 ../libwnck/wnckprop.c:1385 +#: ../libwnck/wnckprop.c:1439 +msgid "set" +msgstr "nustatyta" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1364 ../libwnck/wnckprop.c:1388 +#: ../libwnck/wnckprop.c:1395 ../libwnck/wnckprop.c:1425 +#: ../libwnck/wnckprop.c:1432 ../libwnck/wnckprop.c:1442 +#: ../libwnck/wnckprop.c:1507 ../libwnck/wnckprop.c:1516 +#: ../libwnck/wnckprop.c:1528 ../libwnck/wnckprop.c:1536 +#: ../libwnck/wnckprop.c:1543 +msgid "" +msgstr "" + +#: ../libwnck/wnckprop.c:1365 ../libwnck/wnckprop.c:1389 +#: ../libwnck/wnckprop.c:1443 +#, c-format +msgid "Icons: %s\n" +msgstr "Piktogramos: %s\n" + +#: ../libwnck/wnckprop.c:1368 ../libwnck/wnckprop.c:1406 +#, c-format +msgid "Number of Windows: %d\n" +msgstr "Langų skaičius: %d\n" + +#: ../libwnck/wnckprop.c:1380 ../libwnck/wnckprop.c:1426 +#, c-format +msgid "Name: %s\n" +msgstr "Pavadinimas: %s\n" + +#. Translators: note that "Icon" here has a specific window +#. * management-related meaning. It means minimized. +#: ../libwnck/wnckprop.c:1381 ../libwnck/wnckprop.c:1435 +#, c-format +msgid "Icon Name: %s\n" +msgstr "Piktogramos pavadinimas: %s\n" + +#: ../libwnck/wnckprop.c:1396 ../libwnck/wnckprop.c:1529 +#, c-format +msgid "PID: %s\n" +msgstr "PID: %s\n" + +#. Translators: "none" here means "no startup ID" +#: ../libwnck/wnckprop.c:1403 +msgctxt "startupID" +msgid "none" +msgstr "jokio" + +#: ../libwnck/wnckprop.c:1404 +#, c-format +msgid "Startup ID: %s\n" +msgstr "Paleidimo ID: %s\n" + +#: ../libwnck/wnckprop.c:1452 +msgid "all workspaces" +msgstr "visos darbo sritys" + +#: ../libwnck/wnckprop.c:1456 +#, c-format +msgid "On Workspace: %s\n" +msgstr "Darbo srityje: %s\n" + +#: ../libwnck/wnckprop.c:1471 +msgid "normal window" +msgstr "normalus langas" + +#: ../libwnck/wnckprop.c:1474 +msgid "desktop" +msgstr "darbalaukis" + +#: ../libwnck/wnckprop.c:1477 +msgid "dock or panel" +msgstr "dokas arba skydelis" + +#: ../libwnck/wnckprop.c:1480 +msgid "dialog window" +msgstr "dialogo langas" + +#: ../libwnck/wnckprop.c:1483 +msgid "tearoff toolbar" +msgstr "atkabinama įrankinė" + +#: ../libwnck/wnckprop.c:1486 +msgid "tearoff menu" +msgstr "atkabinamas meniu" + +#: ../libwnck/wnckprop.c:1489 +msgid "utility window" +msgstr "pagalbinis langas" + +#: ../libwnck/wnckprop.c:1492 +msgid "splash screen" +msgstr "pristatomasis langas" + +#: ../libwnck/wnckprop.c:1497 +#, c-format +msgid "Window Type: %s\n" +msgstr "Lango tipas: %s\n" + +#: ../libwnck/wnckprop.c:1500 +#, c-format +msgid "Geometry (x, y, width, height): %d, %d, %d, %d\n" +msgstr "Geometrija (x, y, plotis, aukštis): %d, %d, %d, %d\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are of the +#. * same class. The class instance is a way to differentiate windows belonging +#. * to the same class group. +#: ../libwnck/wnckprop.c:1520 +#, c-format +msgid "Class Instance: %s\n" +msgstr "Klasės egzempliorius: %s\n" + +#: ../libwnck/wnckprop.c:1522 +#, c-format +msgid "XID: %lu\n" +msgstr "XID: %lu\n" + +#: ../libwnck/wnckprop.c:1537 +#, c-format +msgid "Session ID: %s\n" +msgstr "Sesijos ID: %s\n" + +#: ../libwnck/wnckprop.c:1544 +#, c-format +msgid "Role: %s\n" +msgstr "Rolė: %s\n" + +#. Translators: A group leader is the window that is the "owner" of a group +#. * of windows, ie: if you have multiple windows in one application, one +#. * window has some information about the application (like the application +#. * name). +#: ../libwnck/wnckprop.c:1551 +#, c-format +msgid "Group Leader: %lu\n" +msgstr "Grupės lyderis: %lu\n" + +#. Translators: A window can be transient for another window: it means it's +#. * on top of it +#: ../libwnck/wnckprop.c:1557 +#, c-format +msgid "Transient for: %lu\n" +msgstr "Virš: %lu\n" + +#. FIXME: else print something? +#. Translators: we're building a list of items here. * For example, the result is "a, b". * In this case, the first string is "a", the second * string is ", " and the third string is "b". * We can then use this information here to also * recursively build longer lists, like "a, b, c, d" +#. Translators: we're building a list of items here. * The end result is something like "a, b, c" * In this case, the first string is "a, b", the second * string is ", " and the third string is "c" +#: ../libwnck/wnckprop.c:1572 ../libwnck/wnckprop.c:1620 +#, c-format +msgid "%1$s%2$s%3$s" +msgstr "%1$s%2$s%3$s" + +#. Translators: see comment for "%1$s%2$s%3$s" in order * to properly translate this +#: ../libwnck/wnckprop.c:1576 ../libwnck/wnckprop.c:1622 +msgid ", " +msgstr ", " + +#: ../libwnck/wnckprop.c:1582 +msgid "minimized" +msgstr "sumažintas" + +#: ../libwnck/wnckprop.c:1583 +msgid "maximized" +msgstr "išdidintas" + +#: ../libwnck/wnckprop.c:1587 +msgid "maximized horizontally" +msgstr "išdidintas horizontaliai" + +#: ../libwnck/wnckprop.c:1589 +msgid "maximized vertically" +msgstr "išdidintas vertikaliai" + +#: ../libwnck/wnckprop.c:1591 +msgid "shaded" +msgstr "suvyniotas" + +#: ../libwnck/wnckprop.c:1592 +msgid "pinned" +msgstr "prisegtas" + +#: ../libwnck/wnckprop.c:1593 +msgid "sticky" +msgstr "lipnus" + +#: ../libwnck/wnckprop.c:1594 +msgid "above" +msgstr "virš" + +#: ../libwnck/wnckprop.c:1595 +msgid "below" +msgstr "po" + +#: ../libwnck/wnckprop.c:1596 +msgid "fullscreen" +msgstr "visame ekrane" + +#: ../libwnck/wnckprop.c:1597 +msgid "needs attention" +msgstr "reikia dėmesio" + +#. Translators: A pager is the technical term for the workspace switcher. +#. * It's a representation of all workspaces with windows inside it. +#. * Please make sure that the translation is in sync with gnome-panel, +#. * where this term is also used in translatable strings +#: ../libwnck/wnckprop.c:1602 +msgid "skip pager" +msgstr "praleisti darbo sričių perjungiklį" + +#. Translators: "tasklist" is the list of running applications (the window +#. * list) +#: ../libwnck/wnckprop.c:1605 +msgid "skip tasklist" +msgstr "praleisti langų sąrašą" + +#: ../libwnck/wnckprop.c:1607 +msgid "normal" +msgstr "normalus" + +#: ../libwnck/wnckprop.c:1608 +#, c-format +msgid "State: %s\n" +msgstr "Būsena: %s\n" + +#: ../libwnck/wnckprop.c:1629 +msgid "move" +msgstr "perkelti" + +#: ../libwnck/wnckprop.c:1630 +msgid "resize" +msgstr "keisti dydį" + +#: ../libwnck/wnckprop.c:1631 +msgid "shade" +msgstr "suvynioti" + +#: ../libwnck/wnckprop.c:1632 +msgid "unshade" +msgstr "išvynioti" + +#: ../libwnck/wnckprop.c:1633 +msgid "stick" +msgstr "priklijuoti" + +#: ../libwnck/wnckprop.c:1634 +msgid "unstick" +msgstr "atklijuoti" + +#: ../libwnck/wnckprop.c:1636 +msgid "maximize horizontally" +msgstr "išdidinti horizontaliai " + +#: ../libwnck/wnckprop.c:1638 +msgid "unmaximize horizontally" +msgstr "grąžinti iš horizontalaus išdidinimo" + +#: ../libwnck/wnckprop.c:1640 +msgid "maximize vertically" +msgstr "išdidinti vertikaliai" + +#: ../libwnck/wnckprop.c:1642 +msgid "unmaximize vertically" +msgstr "grąžinti iš vertikalaus išdidinimo" + +#: ../libwnck/wnckprop.c:1645 +msgid "change workspace" +msgstr "keisti darbo sritį" + +#: ../libwnck/wnckprop.c:1647 +msgid "pin" +msgstr "prisegti" + +#: ../libwnck/wnckprop.c:1649 +msgid "unpin" +msgstr "atsegti" + +#: ../libwnck/wnckprop.c:1650 +msgid "minimize" +msgstr "sumažinti" + +#: ../libwnck/wnckprop.c:1651 +msgid "unminimize" +msgstr "grąžinti iš sumažinimo" + +#: ../libwnck/wnckprop.c:1652 +msgid "maximize" +msgstr "išdidinti" + +#: ../libwnck/wnckprop.c:1653 +msgid "unmaximize" +msgstr "grąžinti iš išdidinimo" + +#: ../libwnck/wnckprop.c:1655 +msgid "change fullscreen mode" +msgstr "pakeisti viso ekrano veikseną" + +#: ../libwnck/wnckprop.c:1656 +msgid "close" +msgstr "užverti" + +#: ../libwnck/wnckprop.c:1658 +msgid "make above" +msgstr "perkelti į viršų" + +#: ../libwnck/wnckprop.c:1660 +msgid "unmake above" +msgstr "atšaukti perkėlimą į viršų" + +#: ../libwnck/wnckprop.c:1662 +msgid "make below" +msgstr "nukelti žemyn" + +#: ../libwnck/wnckprop.c:1664 +msgid "unmake below" +msgstr "atšaukti perkėlimą žemyn" + +#: ../libwnck/wnckprop.c:1666 +msgid "no action possible" +msgstr "negalimas joks veiksmas" + +#: ../libwnck/wnckprop.c:1667 +#, c-format +msgid "Possible Actions: %s\n" +msgstr "Galimi veiksmai: %s\n" + +#: ../libwnck/wnckprop.c:1899 +msgid "" +"Print or modify the properties of a screen/workspace/window, or interact " +"with it, following the EWMH specification.\n" +"For information about this specification, see:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" +msgstr "" +"Spausdinti arba keisti ekrano/darbo srities/lango savybes pagal EWMH " +"specifikaciją.\n" +"Daugiau informacijos apie šią specifikaciją rasite čia:\n" +"\thttp://freedesktop.org/wiki/Specifications/wm-spec" + +#: ../libwnck/wnckprop.c:1909 +msgid "Options to list windows or workspaces" +msgstr "Parametrai, skirti išvardinti langus arba darbo sritis" + +#: ../libwnck/wnckprop.c:1910 +msgid "Show options to list windows or workspaces" +msgstr "Rodyti parametrus, skirtus išvardinti langus arba darbo sritis" + +#: ../libwnck/wnckprop.c:1917 +msgid "Options to modify properties of a window" +msgstr "Parametrai, keičiantys langų savybes" + +#: ../libwnck/wnckprop.c:1918 +msgid "Show options to modify properties of a window" +msgstr "Rodyti parametrus, keičiančius lango savybes" + +#: ../libwnck/wnckprop.c:1925 +msgid "Options to modify properties of a workspace" +msgstr "Parametrai, keičiantys darbo srities savybes" + +#: ../libwnck/wnckprop.c:1926 +msgid "Show options to modify properties of a workspace" +msgstr "Rodyti parametrus, keičiančius darbo srities savybes" + +#: ../libwnck/wnckprop.c:1933 +msgid "Options to modify properties of a screen" +msgstr "Parametrai, keičiantys ekrano savybes" + +#: ../libwnck/wnckprop.c:1934 +msgid "Show options to modify properties of a screen" +msgstr "Rodyti parametrus, keičiančius ekrano savybes" + +#: ../libwnck/wnckprop.c:1945 +#, c-format +msgid "Error while parsing arguments: %s\n" +msgstr "Klaida apdorojant argumentus: %s\n" + +#: ../libwnck/wnckprop.c:1968 +#, c-format +msgid "Cannot interact with screen %d: the screen does not exist\n" +msgstr "Ekranas %d neegzistuoja\n" + +#: ../libwnck/wnckprop.c:2024 +#, c-format +msgid "Cannot interact with workspace %d: the workspace cannot be found\n" +msgstr "" +"Nepavyksta sąveikauti su darbo sritimi %d: darbo sritis negali būti rasta\n" + +#. Translators: A class is like a "family". E.g., all gvim windows are +#. * of the same class. +#: ../libwnck/wnckprop.c:2048 +#, c-format +msgid "" +"Cannot interact with class group \"%s\": the class group cannot be found\n" +msgstr "Klasių grupė „%s“ nerasta\n" + +#: ../libwnck/wnckprop.c:2071 +#, c-format +msgid "" +"Cannot interact with application having its group leader with XID %lu: the " +"application cannot be found\n" +msgstr "Programa su grupės lyderiu, kurio XID %lu, nerasta\n" + +#: ../libwnck/wnckprop.c:2094 +#, c-format +msgid "Cannot interact with window with XID %lu: the window cannot be found\n" +msgstr "Langas su XID %lu nerastas\n" diff --git a/po/lv.gmo b/po/lv.gmo new file mode 100644 index 0000000..1892c7a Binary files /dev/null and b/po/lv.gmo differ diff --git a/po/lv.po b/po/lv.po new file mode 100644 index 0000000..185a5c8 --- /dev/null +++ b/po/lv.po @@ -0,0 +1,1275 @@ +# Latvian translation for LibWNCK. +# Copyright © 2006 Gnome i18n Project for Latvian. +# +# Raivis Dejus , 2006, 2010. +# Rūdofls Mazurs , 2011, 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: libwnck 2.13.92 HEAD\n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=libwnck&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2013-07-19 00:44+0000\n" +"PO-Revision-Date: 2013-10-05 10:22+0300\n" +"Last-Translator: Rūdolfs Mazurs \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" +"X-Generator: Lokalize 1.5\n" + +#. * +#. * SECTION:application +#. * @short_description: an object representing a group of windows of the same +#. * application. +#. * @see_also: wnck_window_get_application() +#. * @stability: Unstable +#. * +#. * The #WnckApplication is a group of #WnckWindow that are all in the same +#. * application. It can be used to represent windows by applications, group +#. * windows by applications or to manipulate all windows of a particular +#. * application. +#. * +#. * A #WnckApplication is identified by the group leader of the #WnckWindow +#. * belonging to it, and new #WnckWindow are added to a #WnckApplication if and +#. * only if they have the group leader of the #WnckApplication. +#. * +#. * The #WnckApplication objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/application.c:51 +msgid "Untitled application" +msgstr "Nenosaukta lietotne" + +#: ../libwnck/pager-accessible.c:342 +msgid "Workspace Switcher" +msgstr "Darbvietu pārslēdzējs" + +#: ../libwnck/pager-accessible.c:353 +msgid "Tool to switch between workspaces" +msgstr "Rīks, lai pārslēgtos starp darbvietām" + +#: ../libwnck/pager-accessible.c:465 +#, c-format +msgid "Click this to switch to workspace %s" +msgstr "Spiediet šo, lai pārslēgtos uz darbvietu %s" + +#: ../libwnck/pager.c:2215 +#, c-format +msgid "Click to start dragging \"%s\"" +msgstr "Spiediet, lai sāktu vilkt “%s”" + +#: ../libwnck/pager.c:2218 +#, c-format +msgid "Current workspace: \"%s\"" +msgstr "Pašreizējā darbvieta: “%s”" + +#: ../libwnck/pager.c:2223 +#, c-format +msgid "Click to switch to \"%s\"" +msgstr "Spiediet, lai pārslēgtos uz “%s”" + +#: ../libwnck/selector.c:1183 +msgid "No Windows Open" +msgstr "Neviens logs nav atvērts" + +#: ../libwnck/selector.c:1239 +msgid "Window Selector" +msgstr "Logu selektors" + +#: ../libwnck/selector.c:1240 +msgid "Tool to switch between windows" +msgstr "Rīks, lai pārslēgtos starp logiem" + +#: ../libwnck/tasklist.c:675 +msgid "Window List" +msgstr "Logu saraksts" + +#: ../libwnck/tasklist.c:676 +msgid "Tool to switch between visible windows" +msgstr "Rīks, lai pārslēgtos starp redzamajiem logiem" + +#: ../libwnck/tasklist.c:2936 +msgid "Mi_nimize All" +msgstr "Mi_nimizēt visus" + +#: ../libwnck/tasklist.c:2947 +msgid "Un_minimize All" +msgstr "At_minimizēt visus" + +#: ../libwnck/tasklist.c:2955 +msgid "Ma_ximize All" +msgstr "Ma_ksimizēt visus" + +#: ../libwnck/tasklist.c:2966 +msgid "_Unmaximize All" +msgstr "Atmaksimizēt vis_us" + +#: ../libwnck/tasklist.c:2978 +msgid "_Close All" +msgstr "_Aizvērt visus" + +#: ../libwnck/window-action-menu.c:413 +msgid "Unmi_nimize" +msgstr "Atmi_nimizēt" + +#: ../libwnck/window-action-menu.c:420 +msgid "Mi_nimize" +msgstr "Mi_nimizēt" + +#: ../libwnck/window-action-menu.c:428 +msgid "Unma_ximize" +msgstr "At_jaunot" + +#: ../libwnck/window-action-menu.c:435 +msgid "Ma_ximize" +msgstr "Mak_simizēt" + +#: ../libwnck/window-action-menu.c:742 ../libwnck/workspace.c:281 +#, c-format +msgid "Workspace %d" +msgstr "Darba vieta %d" + +#: ../libwnck/window-action-menu.c:751 ../libwnck/window-action-menu.c:898 +#, c-format +msgid "Workspace 1_0" +msgstr "Darba vieta 1_0" + +#: ../libwnck/window-action-menu.c:753 ../libwnck/window-action-menu.c:900 +#, c-format +msgid "Workspace %s%d" +msgstr "Darba vieta %s%d" + +#: ../libwnck/window-action-menu.c:1043 +msgid "_Move" +msgstr "Pār_vietot" + +#: ../libwnck/window-action-menu.c:1050 +msgid "_Resize" +msgstr "Mainīt izmē_ru" + +#: ../libwnck/window-action-menu.c:1059 +msgid "Always On _Top" +msgstr "Vienmēr _virspusē" + +#: ../libwnck/window-action-menu.c:1067 +msgid "_Always on Visible Workspace" +msgstr "Vienmēr uz redz_amās darbvietas" + +#: ../libwnck/window-action-menu.c:1072 +msgid "_Only on This Workspace" +msgstr "_Tikai uz šīs darbvietas" + +#: ../libwnck/window-action-menu.c:1079 +msgid "Move to Workspace _Left" +msgstr "Pārvietot uz darbvietu pa _kreisi" + +#: ../libwnck/window-action-menu.c:1085 +msgid "Move to Workspace R_ight" +msgstr "Pārvietot uz darbvietu pa lab_i" + +#: ../libwnck/window-action-menu.c:1091 +msgid "Move to Workspace _Up" +msgstr "Pārvietot _uz augstāku darbvietu" + +#: ../libwnck/window-action-menu.c:1097 +msgid "Move to Workspace _Down" +msgstr "Pārvietot uz zemāku _darbvietu" + +#: ../libwnck/window-action-menu.c:1100 +msgid "Move to Another _Workspace" +msgstr "Pārvietot uz citu darb_vietu" + +#: ../libwnck/window-action-menu.c:1120 +msgid "_Close" +msgstr "_Aizvērt" + +#. * +#. * SECTION:window +#. * @short_description: an object representing a window. +#. * @see_also: #WnckWorkspace, #WnckApplication, #WnckClassGroup +#. * @stability: Unstable +#. * +#. * The #WnckWindow objects are always owned by libwnck and must not be +#. * referenced or unreferenced. +#. +#: ../libwnck/window.c:50 +msgid "Untitled window" +msgstr "Nenosaukts logs" + +#: ../libwnck/wnckprop.c:139 +msgid "X window ID of the window to examine or modify" +msgstr "X window loga ID, kuru apskatīt vai mainīt" + +#: ../libwnck/wnckprop.c:139 ../libwnck/wnckprop.c:146 +#: ../libwnck/wnckprop.c:156 +msgid "XID" +msgstr "XID" + +#. Translators: A group leader is the window that is the "owner" of a +#. * group of windows, ie: if you have multiple windows in one +#. * application, one window has some information about the application +#. * (like the application name). +#: ../libwnck/wnckprop.c:145 +msgid "X window ID of the group leader of an application to examine" +msgstr "X window grupas vadītāja ID lietotnei, ko izpētīt" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:150 +msgid "Class resource of the class group to examine" +msgstr "Klases resurss klašu grupai, ko izpētīt" + +#: ../libwnck/wnckprop.c:150 +msgid "CLASS" +msgstr "KLASE" + +#: ../libwnck/wnckprop.c:152 +msgid "NUMBER of the workspace to examine or modify" +msgstr "Darbvietu SKAITS, kuras apskatīt vai mainīt" + +#: ../libwnck/wnckprop.c:152 ../libwnck/wnckprop.c:154 +#: ../libwnck/wnckprop.c:172 ../libwnck/wnckprop.c:174 +#: ../libwnck/wnckprop.c:176 ../libwnck/wnckprop.c:273 +msgid "NUMBER" +msgstr "SKAITS" + +#: ../libwnck/wnckprop.c:154 +msgid "NUMBER of the screen to examine or modify" +msgstr "Ekrānu SKAITS, kurus izpētīt vai mainīt" + +#: ../libwnck/wnckprop.c:156 +msgid "Alias of --window" +msgstr "--window alias" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:164 +msgid "" +"List windows of the application/class group/workspace/screen (output format: " +"\"XID: Window Name\")" +msgstr "" +"Izdrukā lietotnes/klašu grupas/darbvietas/ekrāna logu sarakstu (izvades " +"formāts: “XID: loga nosaukums”)" + +#: ../libwnck/wnckprop.c:166 +msgid "" +"List workspaces of the screen (output format: \"Number: Workspace Name\")" +msgstr "" +"Saraksts ar ekrāna darbvietām (izvades formāts: “Numurs: darba vietas " +"nosaukums”)" + +#: ../libwnck/wnckprop.c:172 +msgid "Change the number of workspaces of the screen to NUMBER" +msgstr "Nomainīt darbvietu skaitu ekrānā uz SKAITS" + +#: ../libwnck/wnckprop.c:174 +msgid "Change the workspace layout of the screen to use NUMBER rows" +msgstr "Nomainīt darbvietu izkārtojumu ekrānā, lai izmantotu SKAITS rindu" + +#: ../libwnck/wnckprop.c:176 +msgid "Change the workspace layout of the screen to use NUMBER columns" +msgstr "Nomainīt darbvietu izkārtojumu ekrānā, lai izmantotu SKAITS kolonnu" + +#: ../libwnck/wnckprop.c:178 +msgid "Show the desktop" +msgstr "Rādīt darbvirsmu" + +#: ../libwnck/wnckprop.c:180 +msgid "Stop showing the desktop" +msgstr "Beigt rādīt darbvirsmu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:185 +msgid "Move the viewport of the current workspace to X coordinate X" +msgstr "Pārvietot esošās darbvietas skatu punktu uz X koordinātu X" + +#: ../libwnck/wnckprop.c:185 ../libwnck/wnckprop.c:275 +msgid "X" +msgstr "X" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:190 +msgid "Move the viewport of the current workspace to Y coordinate Y" +msgstr "Pārvietot esošās darbvietas skatu punktu uz Y koordinātu Y" + +#: ../libwnck/wnckprop.c:190 ../libwnck/wnckprop.c:277 +msgid "Y" +msgstr "Y" + +#: ../libwnck/wnckprop.c:196 +msgid "Minimize the window" +msgstr "Minimizēt logu" + +#: ../libwnck/wnckprop.c:198 +msgid "Unminimize the window" +msgstr "Atminimizēt logu" + +#: ../libwnck/wnckprop.c:200 +msgid "Maximize the window" +msgstr "Maksimizēt logu" + +#: ../libwnck/wnckprop.c:202 +msgid "Unmaximize the window" +msgstr "Atmaksimizēt logu" + +#: ../libwnck/wnckprop.c:204 +msgid "Maximize horizontally the window" +msgstr "Maksimizēt logu horizontāli" + +#: ../libwnck/wnckprop.c:206 +msgid "Unmaximize horizontally the window" +msgstr "Atmaksimizēt logu horizontāli" + +#: ../libwnck/wnckprop.c:208 +msgid "Maximize vertically the window" +msgstr "Maksimizēt logu vertikāli" + +#: ../libwnck/wnckprop.c:210 +msgid "Unmaximize vertically the window" +msgstr "Atmaksimizēt logu vertikāli" + +#: ../libwnck/wnckprop.c:212 +msgid "Start moving the window via the keyboard" +msgstr "Sāktu pārvietot logu ar tastatūru" + +#: ../libwnck/wnckprop.c:214 +msgid "Start resizing the window via the keyboard" +msgstr "Sāktu mainīt loga izmēru ar tastatūru" + +#: ../libwnck/wnckprop.c:216 +msgid "Activate the window" +msgstr "Aktivizēt logu" + +#: ../libwnck/wnckprop.c:218 +msgid "Close the window" +msgstr "Aizvērt logu" + +#: ../libwnck/wnckprop.c:221 +msgid "Make the window fullscreen" +msgstr "Izvērst logu pilnekrāna režīmā" + +#: ../libwnck/wnckprop.c:223 +msgid "Make the window quit fullscreen mode" +msgstr "Likt ekrānam iziet no pilnekrāna režīma" + +#: ../libwnck/wnckprop.c:225 +msgid "Make the window always on top" +msgstr "Vienmēr likt šo logu virspusē" + +#: ../libwnck/wnckprop.c:227 +msgid "Make the window not always on top" +msgstr "Ne vienmēr likt šo logu virspusē" + +#: ../libwnck/wnckprop.c:229 +msgid "Make the window below other windows" +msgstr "Vienmēr likt šo logu zem citiem logiem" + +#: ../libwnck/wnckprop.c:231 +msgid "Make the window not below other windows" +msgstr "Ne vienmēr likt šo logu zem citiem logiem" + +#: ../libwnck/wnckprop.c:233 +msgid "Shade the window" +msgstr "Ēnot logu" + +#: ../libwnck/wnckprop.c:235 +msgid "Unshade the window" +msgstr "Noņemt loga ēnu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:240 +msgid "Make the window have a fixed position in the viewport" +msgstr "Fiksēt šo logu attiecībā pret skatu punktu" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:245 +msgid "Make the window not have a fixed position in the viewport" +msgstr "Nefiksēt šo logu attiecībā pret skatu punktu" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:252 +msgid "Make the window not appear in pagers" +msgstr "Nerādīt logu pārslēdzējā" + +#. Translators: A pager is the technical term for the workspace +#. * switcher. It's a representation of all workspaces with windows +#. * inside it. Please make sure that the translation is in sync with +#. * gnome-panel, where this term is also used in translatable strings +#. +#: ../libwnck/wnckprop.c:259 +msgid "Make the window appear in pagers" +msgstr "Rādīt logu pārslēdzējā" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:263 +msgid "Make the window not appear in tasklists" +msgstr "Nerādīt logu uzdevumu sarakstā" + +#. Translators: "tasklist" is the list of running applications (the +#. * window list) +#: ../libwnck/wnckprop.c:267 +msgid "Make the window appear in tasklists" +msgstr "Rādīt logu uzdevumu sarakstā" + +#: ../libwnck/wnckprop.c:269 +msgid "Make the window visible on all workspaces" +msgstr "Rādīt logu visās darbvietās" + +#: ../libwnck/wnckprop.c:271 +msgid "Make the window visible on the current workspace only" +msgstr "Rādīt logu tikai šajā darbvietā" + +#: ../libwnck/wnckprop.c:273 +msgid "Move the window to workspace NUMBER (first workspace is 0)" +msgstr "Pārvietot logu uz darba vietu SKAITLIS (pirmā darba vieta ir 0)" + +#: ../libwnck/wnckprop.c:275 +msgid "Change the X coordinate of the window to X" +msgstr "Mainīt loga X koordinātu uz X" + +#: ../libwnck/wnckprop.c:277 +msgid "Change the Y coordinate of the window to Y" +msgstr "Mainīt loga Y koordinātu uz Y" + +#: ../libwnck/wnckprop.c:279 +msgid "Change the width of the window to WIDTH" +msgstr "Mainīt loga platumu uz PLATUMS" + +#: ../libwnck/wnckprop.c:279 +msgid "WIDTH" +msgstr "PLATUMS" + +#: ../libwnck/wnckprop.c:281 +msgid "Change the height of the window to HEIGHT" +msgstr "Mainīt loga augstumu uz AUGSTUMS" + +#: ../libwnck/wnckprop.c:281 +msgid "HEIGHT" +msgstr "AUGSTUMS" + +#. Translators: do not translate "normal, desktop, dock..." +#: ../libwnck/wnckprop.c:284 +msgid "" +"Change the type of the window to TYPE (valid values: normal, desktop, dock, " +"dialog, toolbar, menu, utility, splash)" +msgstr "" +"Mainīt loga tipu uz TIPS (vērtības ir normal, desktop, dock, dialog, " +"toolbar, menu, utility, splash)" + +#: ../libwnck/wnckprop.c:284 +msgid "TYPE" +msgstr "TIPS" + +#: ../libwnck/wnckprop.c:290 +msgid "Change the name of the workspace to NAME" +msgstr "Mainīt darbvietas nosaukumu uz NOSAUKUMS" + +#: ../libwnck/wnckprop.c:290 +msgid "NAME" +msgstr "NOSAUKUMS" + +#: ../libwnck/wnckprop.c:292 +msgid "Activate the workspace" +msgstr "Aktivizēt darbvietu" + +#: ../libwnck/wnckprop.c:386 ../libwnck/wnckprop.c:410 +#: ../libwnck/wnckprop.c:446 ../libwnck/wnckprop.c:469 +#, c-format +msgid "Invalid value \"%s\" for --%s" +msgstr "Nederīga vērtība “%s” parametram --%s" + +#: ../libwnck/wnckprop.c:503 ../libwnck/wnckprop.c:522 +#, c-format +msgid "" +"Conflicting options are present: screen %d should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu mijiedarboties ar ekrānu %d, bet tiek " +"izmantots --%s\n" + +#: ../libwnck/wnckprop.c:512 +#, c-format +msgid "" +"Conflicting options are present: windows or workspaces of screen %d should " +"be listed, but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu tikt uzskaitītām ekrāna %d darbvietām " +"vai logiem, bet tika izmantots --%s\n" + +#: ../libwnck/wnckprop.c:535 ../libwnck/wnckprop.c:555 +#, c-format +msgid "" +"Conflicting options are present: workspace %d should be interacted with, but " +"--%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu mijiedarboties ar darbvietu %d, bet " +"tiek izmantots --%s\n" + +#: ../libwnck/wnckprop.c:545 +#, c-format +msgid "" +"Conflicting options are present: windows of workspace %d should be listed, " +"but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu tikt uzskaitītiem darbvietas %d " +"logiem, bet tika izmantots --%s\n" + +#: ../libwnck/wnckprop.c:567 +#, c-format +msgid "" +"Conflicting options are present: an application should be interacted with, " +"but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu mijiedarboties ar lietotni, bet tika " +"izmantots --%s\n" + +#: ../libwnck/wnckprop.c:577 +#, c-format +msgid "" +"Conflicting options are present: windows of an application should be listed, " +"but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu uzskaitīt lietotnes logus, bet tika " +"izmantots --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:591 +#, c-format +msgid "" +"Conflicting options are present: class group \"%s\" should be interacted " +"with, but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu mijiedarboties ar klašu grupu “%s”, " +"bet tika izmantots --%s\n" + +#. Translators: A class is like a "family". E.g., all gvim windows +#. * are of the same class. +#: ../libwnck/wnckprop.c:603 +#, c-format +msgid "" +"Conflicting options are present: windows of class group \"%s\" should be " +"listed, but --%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu uzskaitīt klašu grupu “%s” logus, bet " +"tika izmantots --%s\n" + +#: ../libwnck/wnckprop.c:615 ../libwnck/wnckprop.c:624 +#, c-format +msgid "" +"Conflicting options are present: a window should be interacted with, but --" +"%s has been used\n" +msgstr "" +"Ir konfliktējošas opcijas — vajadzētu mijiedarboties ar logu, bet tika " +"izmantots --%s\n" + +#: ../libwnck/wnckprop.c:643 ../libwnck/wnckprop.c:724 +#: ../libwnck/wnckprop.c:771 +#, c-format +msgid "Conflicting options are present: --%s and --%s\n" +msgstr "Ir konfliktējošas opcijas — --%s un --%s\n" + +#: ../libwnck/wnckprop.c:682 +#, c-format +msgid "" +"Invalid argument \"%d\" for --%s: the argument must be strictly positive\n" +msgstr "" +"Nederīgs parametrs “%d” parametram --%s — parametram ir jābūt lielākam par " +"nulli\n" + +#: ../libwnck/wnckprop.c:695 +#, c-format +msgid "Invalid argument \"%d\" for --%s: the argument must be positive\n" +msgstr "" +"Nederīgs parametrs “%d” parametram --%s — parametram ir jābūt lielākam par " +"nulli\n" + +#: ../libwnck/wnckprop.c:790 +#, c-format +msgid "Conflicting options are present: --%s or --%s, and --%s\n" +msgstr "Ir konfliktējošas opcijas — --%s vai --%s un --%s\n" + +#: ../libwnck/wnckprop.c:822 +#, c-format +msgid "Invalid argument \"%s\" for --%s, valid values are: %s\n" +msgstr "Nederīgs parametrs “%s” parametram --%s — derīgās vērtības ir: %s\n" + +#: ../libwnck/wnckprop.c:865 +#, c-format +msgid "" +"Cannot change the workspace layout on the screen: the layout is already " +"owned\n" +msgstr "" +"Nevar mainīt darbvietu izkārtojumu uz ekrāna — izkārtojumam jau ir " +"piederība\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:900 +#, c-format +msgid "" +"Viewport cannot be moved: the current workspace does not contain a viewport\n" +msgstr "Nevar pārvietot skatu punktu — šajā darbvietā nav skatu punkta\n" + +#. Translators: 'viewport' is kind of the viewable area. A viewport +#. * can be used to implement workspaces (e.g. compiz is an example); +#. * however it is not just the current workspace. +#: ../libwnck/wnckprop.c:907 +#, c-format +msgid "Viewport cannot be moved: there is no current workspace\n" +msgstr "Nevar pārvietot skatu punktu — nav pašreizējās darbvietas\n" + +#. FIXME: why do we have dual & boolean API. This is not consistent! +#: ../libwnck/wnckprop.c:943 ../libwnck/wnckprop.c:952 +#: ../libwnck/wnckprop.c:961 ../libwnck/wnckprop.c:968 +#: ../libwnck/wnckprop.c:978 ../libwnck/wnckprop.c:985 +#: ../libwnck/wnckprop.c:994 ../libwnck/wnckprop.c:1043 +#, c-format +msgid "Action not allowed\n" +msgstr "Darbība nav atļauta\n" + +#: ../libwnck/wnckprop.c:1039 +#, c-format +msgid "Window cannot be moved to workspace %d: the workspace does not exist\n" +msgstr "Nevar pārvietot logu uz darbvietu %d — darba vieta neeksistē\n" + +#. Translators: 'unset' in the sense of "something has not been set". +#: ../libwnck/wnckprop.c:1103 ../libwnck/wnckprop.c:1235 +msgid "" +msgstr "" + +#. Translators: %lu is a window number and %s a window name +#: ../libwnck/wnckprop.c:1106 +#, c-format +msgid "%lu: %s\n" +msgstr "%lu: %s\n" + +#. Translators: %d is a workspace number and %s a workspace name +#: ../libwnck/wnckprop.c:1126 +#, c-format +msgid "%d: %s\n" +msgstr "%d: %s\n" + +#: ../libwnck/wnckprop.c:1189 +#, c-format +msgid "Screen Number: %d\n" +msgstr "Ekrāna numurs: %d\n" + +#: ../libwnck/wnckprop.c:1191 ../libwnck/wnckprop.c:1272 +#, c-format +msgid "Geometry (width, height): %d, %d\n" +msgstr "Ģeometrija (platums, augstums): %d, %d\n" + +#: ../libwnck/wnckprop.c:1195 +#, c-format +msgid "Number of Workspaces: %d\n" +msgstr "Darbvietu skaits: %d\n" + +#: ../libwnck/wnckprop.c:1201 +#, c-format +msgid "Workspace Layout (rows, columns, orientation): %d, %d, %s\n" +msgstr "Darbvietu izkārtojums (rindas, kolonnas, orientācija): %d, %d, %s\n" + +#: ../libwnck/wnckprop.c:1211 ../libwnck/wnckprop.c:1268 +#: ../libwnck/wnckprop.c:1465 +msgid "" +msgstr "