『超速変形ジャイロゼッター』(2012)
オロチやらスープラがロボットに変形します。こんな変形ロボアニメがあったとは。超速変形なので、どのような仕組みで変形してるか分かりません。スポーツカー形態の時は、もちろんカッコいいのですが、ロボット形態はいまいち。やはり子供向けだからでしょうか。
昔海外の友人にセリカのパンフレットを見せたら、「スープラカッコイイネ」と言ってたのを思い出しました。セリカはアメリカではスープラという名前なのを初めて知った時(スープラは日本でも元々セリカだったらしいですが)、何故だか感動し、しばらくセリカのことをスープラと呼んでた時がありました。
さて今回も前回の続きで、dos2unixです。ソースを見ようと思います。
dos2unixパッケージを指定してソースを取得すれば、dos2unixとunix2dos両方のソースが格納されています。
takk@deb9:~$ mkdir crlf takk@deb9:~$ cd crlf takk@deb9:~/crlf$ ls takk@deb9:~/crlf$ apt-get source dos2unix ~省略~ takk@deb9:~/crlf$ ls dos2unix-7.3.4 dos2unix_7.3.4-3.dsc dos2unix_7.3.4-3.debian.tar.xz dos2unix_7.3.4.orig.tar.gz takk@deb9:~/crlf$ cd dos2unix-7.3.4/ takk@deb9:~/crlf/dos2unix-7.3.4$ ls BUGS.txt NEWS.txt debian po unix2dos.h wccos2.mak COPYING.txt README.txt djgpp.mak po-man vc.mak wccwin32.mak ChangeLog.txt TODO.txt dos2unix.c querycp.c version.mk DEVEL.txt bcc.mak dos2unix.h querycp.h wcc.mif INSTALL.txt common.c emx.mak test wccdos16.mak Makefile common.h man unix2dos.c wccdos32.mak takk@deb9:~/crlf/dos2unix-7.3.4$
dos2unix.cとunix2dos.cが、それぞれdos2unixコマンド、unix2dosというわけですね。
dos2unix.cの方の冒頭のコメントを見てみます。
takk@deb9:~/crlf/dos2unix-7.3.4$ sed '/\*\//q' dos2unix.c /* * Name: dos2unix * Documentation: * Remove cr ('\x0d') characters from a file. * * The dos2unix package is distributed under FreeBSD style license. * See also http://www.freebsd.org/copyright/freebsd-license.html * -------- * * Copyright (C) 2009-2016 Erwin Waterlander * Copyright (C) 1998 Christian Wurll * Copyright (C) 1998 Bernd Johannes Wuebben * Copyright (C) 1994-1995 Benjamin Lin. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice in the documentation and/or other materials provided with * the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * == 1.0 == 1989.10.04 == John Birchfield (jb@koko.csustan.edu) * == 1.1 == 1994.12.20 == Benjamin Lin (blin@socs.uts.edu.au) * Cleaned up for Borland C/C++ 4.02 * == 1.2 == 1995.03.16 == Benjamin Lin (blin@socs.uts.edu.au) * Modified to more conform to UNIX style. * == 2.0 == 1995.03.19 == Benjamin Lin (blin@socs.uts.edu.au) * Rewritten from scratch. * == 2.1 == 1995.03.29 == Benjamin Lin (blin@socs.uts.edu.au) * Conversion to SunOS charset implemented. * == 2.2 == 1995.03.30 == Benjamin Lin (blin@socs.uts.edu.au) * Fixed a bug in 2.1 where in new-file mode, if outfile already exists * conversion can not be completed properly. * * Added Mac text file translation, i.e. \r to \n conversion * Bernd Johannes Wuebben, wuebben@kde.org * Wed Feb 4 19:12:58 EST 1998 * * Added extra newline if ^M occurs * Christian Wurll, wurll@ira.uka.de * Thu Nov 19 1998 * * See ChangeLog.txt for complete version history. * */ takk@deb9:~/crlf/dos2unix-7.3.4$
FreeBSDライセンスのようです。
ファイルからcr ‘0xd’を取り除く、とあります。crさえ取り除けばよいのならtrコマンドでもよいような気がしますが。
man dos2unixを見てみましょう。
dos2unix(1) 2016-11-11 dos2unix(1) NAME dos2unix - DOS/Mac to Unix and vice versa text file format converter SYNOPSIS dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...] unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]
NAMEを見ると、Macも対応しているようです。dos2unix.cの処理の中でMacの処理もしているのでしょうか。コメントを探してみましょう。macで検索すると見つけやすいと思います。
takk@deb9:~/crlf/dos2unix-7.3.4$ grep mac dos2unix.c case FROMTO_MAC2UNIX: /* mac2unix */ case FROMTO_MAC2UNIX: /* mac2unix */ if ((strcmpi("mac2unix", ptr) == 0) || (strcmpi("mac2unix.exe", ptr) == 0)) { strcpy(progname,"mac2unix"); takk@deb9:~/crlf/dos2unix-7.3.4$
すぐに見つかりました。しかも、プログラム名がmac2unixかどうかのチェックをしているので、dos2unixという実行ファイルをmac2unixという名前にすれば、Macの改行コードに対応できる、ということになると思います。シンボリックリンクが貼られているのでしょうか。
mac2unixとunix2macコマンドについて探っていきます。まずは実行ファイルの場所。
takk@deb9:~$ which mac2unix unix2mac /usr/bin/mac2unix /usr/bin/unix2mac takk@deb9:~$
次はシンボリックリンクを辿ります。
takk@deb9:~$ !! | xargs ls -l which mac2unix unix2mac | xargs ls -l lrwxrwxrwx 1 root root 8 11月 11 2016 /usr/bin/mac2unix -> dos2unix lrwxrwxrwx 1 root root 8 11月 11 2016 /usr/bin/unix2mac -> unix2dos takk@deb9:~$
それぞれdos2unixとunix2dosのシンボリックリンクになってました。プログラム名により処理を変えるというのは、なかなか面白いテクニックです。
物は同じなのに、名前が異なる。セリカとスープラのようです。
ちなみに自動車に無頓着過ぎる私は、セリカもスープラもとっくの昔に生産終了してることを今日知りました。
コメント