はてなキーワード: SPCとは
日本の外為法については既に報道されている通り、重要な社会インフラ等に対する買収で、結果国益を損ねると判断すれば国が差し止めを求めることが出来るというもの。
米国独禁法については、クシュタールが全米で展開するサークルKとセブン&アイが合計シェアの点で反トラスト法にかかるのではないかという恐れ。
前提として、この規模のM&Aともなれば、関係当局との合意形成無しに物事が進むはずもなく、当然クシュタールとしては既に日米双方に対し擦り合わせを行っているとは思う。
Jパワーのような明確なエネルギー・インフラ企業ではないセブン&アイに外為法を適用できる合理的な論拠があるのかについては疑問はある。
米独禁法については適切な規模の店舗統廃合、売却によってこちらはクリアできる可能性が高い。
どの道、セブン&アイとの合意形成と日米政府の合意形成は車の両輪のような認識で相違は無いと思う。
同じ西側諸国である日米間のやり取りとなるため、中国独禁法のような国家の論理によってズルズル引き延ばされる可能性は低い。
どちらかの結果が食い違うような見切り発車を政府が許すはずが無いし、抑々そうなった時点で実現可能性は限りなく低くなるので、敵対的買収に発展する可能性は低いと見てる。
個人的な所感としては、時間はかかるが同盟国同士の擦り合わせによりクリアできなくは無いという感想。
いくらセブン&アイの経営陣がクシュタールの提案に異論を唱えても、経営陣の言う「適切な企業評価」に株価が全く追いついていないのは事実で、その論理だけでクシュタール提案を蹴るのは株主の利益を明確に損ねる行動であり、ある種の背任行為に近い。
それを前提とした落としどころを作るには、必然的にクシュタール提案を上回る「対案」を出さねばいけない。
現時点で具体的な金額やをあえてアナウンスしているのも、「我々の提案はクシュタール案を超える条件です」ということを明示するためのアナウンスメントだと個人的には解釈してる。
何よりも、この絵描いてるのは創業家ではなく、政府の意向も多分に入ってるんじゃないの?と思ってる。
通常、創業家の持つ5,000億円の株券に対するLBOとして8兆円という規模が適切なのか?という議論もあろうが、国策TOBの名の元にそこはおっつけてくるのではないかと。
次に、時期の問題だが、昨日飛ばしニュースのあったNHKの内容を基にするなら、今年度末(勘違いしている人も居るが、年度末は3末の事で12末じゃない)をターゲットにするのは非常に説得力が強い。
セブン&アイは多くの3末決算企業と違い、2末決算なので、遅くとも2末までには配当を出すのか、M&Aを前提とした無配とするのかを決定しないといけない。
同時に、上場廃止を前提とした国内M&Aの場合、TOB開始からクローズまで通常一ヶ月は空けるのが通例なので、3末に買収を終えるのであれば、セブン&アイの決算期である2末までにはTOBを開始する必要がある。
この2点を合算して考えると、仮に3末をターゲットとした創業家によるTOBが実行されるのであれば、2末までには具体的なアナウンスメントを出さないといけない。
通常ターゲットの期日に近づくにつれて株価はTOB期待でジリ高になる。
言い換えれば2末までにアナウンスメントが無い場合、TOB期待は急速にしぼむor失望売りが出ると考えて良いとは思う。
纏めると、クシュタール案に対し超えなければいけないハードルが極端に低い分、実現可能性は高いという印象。
最後に、NHKのリークについてだが、大前提としてNHKが何の事前調整も意味もなく、19時台の「国営TV」であれだけ具体的な内容国策M&Aという重大ニュースを報じるとは到底考えられない。
恐らくだが、あれはクシュタールに対する「これ以上条件上げた叩き合いするなよ?」という牽制球なのではないかと個人的には捉えている。
IR出た後のドカ売りに関しては正直私も良く分からないし、何名かの投資家が指摘しているようにインサイダーチックなフロントランニングである可能性も否定はできない。
反面、先述の通り、既にクシュタールの買収提案ラインには近づいており、実現可能性と時間的価値を割り引いた結果、市場での売却を選んでいる可能性はある。
良かったね。
マーケティング下手すぎじゃね?とは思うけど、ファンは喜んでいるみたいで、素晴らしい事じゃないかと思う。
その時、その時で評価を変えること、間違っていたと思ったら修正するのは当たり前のことで、真に批判されるべきはまだ結果もわからないのに「どうせダメだ」と叩くことなのではないか。ヒートアップするあまり後に引けなくなり、公開後にも「あんな映画は爆死するべきだ」とグダグダ文句を言い続けることは、もっと悪い。みっともないよ。
しかもだ。叩いていた人物と手放しで賞賛している人物が同一人物とも限らない。その時たまたま声が大きい人たちが目立っているだけなのだから当然だ。
韓国のNO JAPANの時だって、ユニクロは閑散としている一方であつ森には長蛇の列ができていた。ネトウヨどもは「NO JAPANはどうなったんだよ」と嘲笑していたが(ちなみに韓国国内にも、国民が一丸となっている時期に情けないと嘆く連中はいた。お前ら仲良いな)韓国にも日本のゲームが好きな人、過剰な不買運動に嫌気がさしていた人、何年も前からどうぶつの森シリーズのファンで楽しみにしていた人がたくさんいたってだけだ。
ちなみに今、韓国ではまた不買運動が起きている。パン工場で激務の末機械に巻き込まれて亡くなった女性の件で、製パン大手のSPCグループに抗議する為だ。
少し時計を戻せば、ここはほんの少し前まで「ポケモンパン」が大ブームだった。韓国では日本と違い、シール付きのポケモンパンは最初期のみ発売され、長らく中断された状態だったのが突然復刻したのだ。その懐かしさが成長したかつてのポケモンキッズたちの心をつかみ、さらに現代の子供まで巻き込んで転売ヤーが出現するほどの騒ぎになった。過剰なブームが、過剰な労働の一因だったとも考えられる…。今不買を貫いている人たちの中には、ポケモンパンブームに踊らされていた自分を悔いている人たちもいるのではないだろうか。
「パナマ文書」の暴露により、世界の偉い人・有名人の資産隠しや租税回避が明るみに出ました。
これを発端に、いままでなじみの薄かったいわゆる「タックスヘイブン」(租税回避地)の存在が明るみになり、日本でもひろく報道・議論されるようになりました。
しかしながら、このような議論のなかで、いくつかタックスヘイブンにまつわる誤解が生まれているような気がしますので、これを機会に少し整理してみたいと思います。
書き手(増田とします)は民間企業の中の人ですので、もちろん中立的な観点からお話ができるよう配慮はしますが、いくらか企業寄りの、バイアスのかかった記事になってしまう可能性があることを申し添えます。
記載内容は厳密には異なる場合、細かい部分を捨象している場合や例外が存在しており、あらゆる場面で正確性を担保できるものではありません。
参考記事1: http://editor.fem.jp/blog/?p=1969
↑要約すると~日本企業がタックスヘイブンであるケイマン諸島(法人税率0%)へ投資した額は、直近で60兆円にものぼっている。これに対して日本の法人税率23.9%を課すとすると約14兆となり、消費税収をほぼカバーできる額となる~という夢のようなお話です。
まず、タックスヘイブンとは関係ないですが、法人税は投資額に対して課されるのではなくて、投資して得たリターン(収益)に対して課されることになるので、そもそもの計算が違います。
つぎに、日本の税制では、日本の親会社がタックスヘイブンを含む軽課税国~無課税国に子会社をつくって投資をした場合、子会社で得た利益を親会社の利益に乗せて課税する仕組み(外国子会社合算税制。詳しくはググれ)があるため、基本的に租税回避できません。
また、確かにタックスヘイブンであるケイマン諸島やパナマの会社や口座は情報の秘匿性が比較的高いといえますが、日本の監査法人や税務当局もバカではありませんので、仮に企業が資産隠しをしようとしたら普通はバレます。
参考記事2: http://enter101.hatenablog.com/entry/2016/04/08/230542
↑に関連して。
確かに、日本政府はパナマ文書について「日本企業への影響を考慮して」調査しないこと(実際には「コメントを控える」こと)を発表しました。しかしながら、これが批判されるべきことかと言えば、少々事情が異なるのかと思います。
かりにパナマ文書に記載の日本企業がリストアップされたらどうなるでしょう。「租税逃れだ!」と方々から批判を受けるのではないでしょうか。実際には上記の通りほとんどの企業は親会社で相応の税負担をしているにもかかわらず、です。
さらに、この<調査しない宣言>を横展開させて「日本はタックスヘイブンを野放しにしているんだ!アベ死ね!」と考えるのは畢竟お花畑の思考です。皆さんはマイナンバー制度というのをご存じでしょうか。そう、今年から始まったアレです。これがなんのために始められた制度か知っていますか?OLが副業で水商売しているのを暴いてニヤニヤするためですか?色々な目的はありますが、その中のひとつに超富裕層の租税回避対策があります。近いうちに銀行口座とマイナンバーの紐づけがなされ、税務当局は個人の所得を把握しやすくなります。また、このマイナンバー制度と並行して、日本は世界各国と金融口座に関する情報交換協定を結んでいます。この協定の参加国にはケイマン等のタックスヘイブン国も含まれており、富裕層の課税逃れはさらに難しくなっていきます。
参考記事2でアフィリエイトリンクが貼られている志賀さんの著書ですが、これを読めばいかに日本のタックスヘイブン対策が他国に比べて進んでおり、租税逃れが難しくなっているかがわかりますので、どうしてこのような記事が書けるのか不思議でなりません。
この疑問はごもっともです。参考記事1で引用されるように、日本企業のタックスヘイブン国に対する投資はたいしたものです。これらの企業はなぜ、外国子会社合算税制の存在にもかかわらず同国で投資を行うのでしょうか。いくつか理由があります。
たとえば会社であるプロジェクトを進めるとき、その会社が直接事業をはじめるのではなく、子会社を作ったほうが色々な面で都合が良い場合があります。このとき、日本で株式会社を設立するとなると、法人税以外にも色々なコストがかかります。たとえば、会社の資本に応じて事業税が課されますし、会計監査を受けるための費用も発生します。会社があるだけでけっこうな維持費用がかかるのです。これに対して、タックスヘイブン国のほとんどは日本国にいながら設立でき、会計監査も不要で、かかるコストは登記費用だけとなります。このような利便性から、債権や不動産の流動化を目的としたSPCの多くは、いまだにタックスヘイブン国が活用されています。(SPCについては http://accountingse.net/2011/01/260/ ここの説明がわかりやすいです。)
たとえばパナマの会社の多くは船会社ですが、これはパナマが便宜置籍のメッカであるからです。増田は船会社のことはあまり詳しくありませんが、日本で置籍するよりも色々な制度上の恩恵を受けることができ、今でもパナマで船用のペーパーカンパニーを作っているところは多いです。便宜置籍のあり方そのものが問われることがありますが、ここでの本論からずれるので措きます。
先ほどの説明と矛盾しますが、子会社の利益が親会社で課税されるといっても限界があり、スキーム次第では節税可能となる場合があります。たとえば、外国子会社合算税制が適用されるのは日本の会社が50%超出資する場合で、外国の会社と共同で出資し、日本からの出資比率が50%以下となるような場合については適用されません。つまりこの場合には税率は0%のままとなります。
厄介なことに日本の法人税制はとてつもなくややこしいので説明は省きますが、他にもスキームによって0%とまではいかないまでも節税ができる場合もあります。ただしこのような例は増田の肌感覚ではそこまで多くないと思っています。
これについては判断がわかれるところです。増田はサラリーマンなのでどうしても企業よりの回答になってはしまいますが、これはケースバイケースです。たとえばはてな国で現地のはてな人を顧客にしたビジネスをしたいとき、はてな国に会社をつくることは自然な行為です。いっぽうで、日本で日本人を相手にビジネスをするのに、はてな国で会社をつくるのはかなり不自然ですね。はてな国が租税回避国であった場合、なおさら怪しいことになってしまいます。実際のビジネスはこの両端の間で行われており、適法であっても黒に近いグレーであるような取引はたくさんあるのも事実です。たとえば最近判決の出たYahoo事件というものがあります。これはタックスヘイブンとは関係ないのですが、Yahooが日本の税制の穴をついて意図的な租税回避をしたかどうかについて争ったものです。最高裁判所はYahooの取り組みを「明らかに不自然で税負担の減少を意図して税制を濫用した」ものと結論づけました。この判決については、いまだ議論が交わされている中ですし、増田も法に詳しいわけではないので確たることは言えませんが、民法1条3項では、「権利の濫用は、これを許さない」とうたわれています。実際の判決でこれが引用されることはあまりない感じはしますし、これがまさに程度問題なので線引きも難しいところですが、制度に穴があるというのは法の精神に体が追い付いていないようなものであるので、明らかに精神に反するものは排除されるべきというのは一理あると思います。
http://www.cas.go.jp/jp/seisaku/bangoseido/faq/faq7.html 記載の通り、任意ではあります。
https://www.oecd.org/ctp/exchange-of-tax-information/MCAA-Signatories.pdf (PDFです)今のところパナマはないです。
初増田でたくさんの反応を頂けてありがたく思います。この文章を書いた背景は、パナマ文書騒動を機にタックスヘイブンということばが一気に周知のものとなったにもかかわらず、そのことばの内実を曲解させるような記事がたくさん出回ってしまい、これにぶち切れたことが理由です。税に関することがらはなかなか理解しにくいところがあるので、交通整理的な意味合いを込めて2つの事例をもとに私なりにお伝えできることを書かせて頂きました。まず、本論で特に触れませんでしたがパナマ文書騒動そのものに関しては、そもそもパナマが国際的租税回避地であるという事実は変わりませんし、これを利用して租税回避行動をとった個人・企業が存在することも事実ですが、その一方でパナマ文書に記載された個人・企業の全てが法的ないし倫理的に悪いことをしているとは言いきれない(この点においてアシュレイ・マディソン事件とは構造が異なる)ことから、その情報の取り扱い方に非常な危惧を感じました。ここで批判の矢が日本の政治家や企業におよぶことは想像に難くないですし、もちろんそれによって汚職や資産隠しが明るみに出ること自体が悪いことではないのですが、特に悪いことをしていない企業までさらし者にされてしまうことは非常にかわいそうで残念なことだと思います。それは避けられないことかもしれないとしても、事実のゆき過ぎた誤解は到底容認できないと思い、できる限り事実をそのままに記述することを意図してこの文章を書いています。火のないところに煙がたたないというのは、それはそうなんですけど、だからといってそこにガソリンを撒くのはどうかと思うのです。まぁ、ガソリンで派手に燃え上がった段階で水をまいてもアレですが。
日本企業の大部分はタックスヘイブン国への投資を行うにしても合算課税されることが常ですが、合算課税されず、いわゆる「租税回避」状態となる場合が存在することもまた事実です。これは私の知りうる客観的事実ではありますが、では合算課税される投資と租税回避される投資がそれぞれどの程度の割合でなされているかを網羅的に公開した資料があるかというと、そんなものは国税庁も明らかにしておりませんので、私の観測範囲では合算課税の方が多いという主張しかできません。この「肌感覚」について不信の視線が向くのは国語的に自然な運びとなりますので、これ以上の弁明はできません。そもそも私のポジションは「企業は何も悪くない!」とまではいかないので。制度的に不十分なところもあるし、企業がやりすぎなところもあるが、おおむねうまく回ってるんじゃない、くらいの見解です。
ちなみに、仮に適法に租税回避できたとして、その収益はふつう、その会社の次の投資の原資となり、あるいは株主への配当となり、あるいは従業員にたいする給与となります。(当たり前の話ですが、租税回避=国外に利益が流出している!と誤解されがちなので。)また、ブコメでも言及されていますが企業には実効税率という動かしがたい指標があるので、タックスヘイブンでどれだけ租税回避できているかは分からなくても、その企業が標準税率と比べてどの程度の税金を納めているかは何とな~くわかりますので、本当に気になる方は調べてみてください。
ここですべての疑問に答えることはしませんが、いくつかご不明な点にお答えします。(今後追加で反応があればできる限り更新します。)ちなみに、私は税理士でもなんでもないので簡単な説明にとどめておきます。
外国子会社合算税制により合算課税されたタックスヘイブン国の所得を配当金として日本の親会社に還流する場合、その配当金に課税すると二重課税になりますので、既に課税を受けた見合い部分は益金不算入となります。
隠しているというよりは、開示する義務がないという表現が正しいです。たとえば日本の法律事務所がクライアントを全部公開するようなことは永遠にないでしょうし、企業が子会社のそれぞれの損益計算書を開示するようなこともありません。ただし子会社のリストは有価証券報告書等で開示されており、ほとんどは名前でググればどこの法人かもわかりますので、通常は隠されているようなことはありません。ほんとに悪いことをしてる場合はよく簿外に飛んで見えなくなるので、オリンパス事件みたいにコーポレートガバナンスが効いていないとまずいです。
【ANAは2011年】全日空スレ NH030便【LCC運航】
http://toki.2ch.net/test/read.cgi/airline/1285364243/
で今も生きてるANAと更生会社のJALの財務状況を同じ土俵で比較している香具師がいて、同じ土俵で比較するためには基準をそろえないといけないみたいな流れから航空機の簿価と含み損益の話が出てきたので、ちょっと考えてみた。
ちなみに元増田のスペックは6年ほど某メーカー(5xx1)経理課で連結決算やってた元経理マンっす。
もうブランク長いし、そもそも古い知識で最新の会計基準なんか知らんからそのつもりで。
…主として定額法
これは保有機材の人気不人気でものすごく損得が分かれる。
744みたいな不人気機種には非常にきつい。
ちょっと新しい数字が見つからなかったけど、H18/3のANAの平均機齢は9.5年だそうだ。
とすると、100の取得価額に対して 国内線の簿価は46.9、国際線は54.9になる。ANAのB/Sで出てくる「航空機708,470百万円」というのはこの46とか54に相当する部分。
以下のうち星印の数字はウロ覚えなので適宜訂正してほしいんだが
744一機の新造コストが★130億(簿価をアップさせる修繕は考慮しない)なら
JAL機の売却価格(≒時価)が★20~30億とすると、1機平均40億の含み損ということになる
減価償却の方針は好き勝手には変えられないから、ANAが良いも悪いもなく744が不人気でアンラッキーだったね、というだけのことではあるんだけど。
んでもって簿価を洗い替えただろうJALはさておいて、ANAは退役後の744の簿価どうするつもりなんだろうか。
SPCに簿価で売却して実機はSPCから他社にリース、含み損はSPC持ち分を時価評価して資本の部から直接控除すればP/Lに出ないかな。最近はP/L通さないといけないんだったかな。
・snes9x-1.5.1-srcフォルダを入れるまとめフォルダを作る(ここにzlibとlibpngとfmodとnasmのフォルダを突っ込むため)。
・zlibはソースをDLして解凍する。できたフォルダをzlibにリネームしてまとめフォルダに突っ込む。zlibフォルダ内のcrc32.cをemucrc32.cにリネームする。
・libpngはコンパイル済みバイナリをDLして解凍する。できたフォルダをlibpngにリネームしてまとめフォルダに突っ込む。ソリューションエクスプローラでlibPNGフォルダ内の*.cをプロジェクトから除外する。プロジェクトのプロパティで追加の依存ファイル一覧にあるlibpngmt.libをlibpng.libにリネームする。
・fmodはver.3系(ver.4系でのビルドは未確認)のコンパイル済みバイナリをDLして解凍する。できたフォルダの中のフォルダをfmodにリネームしてまとめフォルダに突っ込む。
・nasmはコンパイル済みバイナリをDLして解凍する。できたフォルダの中のフォルダをnasmにリネームしてまとめフォルダに突っ込む。nasmはプロジェクト中の*.asmのビルドに必要になる。後の*.asmのビルド設定との整合性のためこの通りに配置すること。
・プロジェクトのプロパティでDirectX SDKのIncludeとLibフォルダにパスを通す。
・プロジェクトのプロパティで、「リンク前のイベント」に次のコマンドを追加する。
pushd "$(SolutionDir)..\"
del "i386\*.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\2xsaimmx.asm" "-oi386\2xsaimmx.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\bilinear.asm" "-oi386\bilinear.obj"
rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\c4.asm" "-oi386\c4.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2.asm" "-oi386\fxemu2.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2b.asm" "-oi386\fxemu2b.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxemu2c.asm" "-oi386\fxemu2c.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\fxtable.asm" "-oi386\fxtable.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\sfxproc.asm" "-oi386\sfxproc.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\spc.asm" "-oi386\spc.obj"
"$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnes.asm" "-oi386\zsnes.obj"
rem "$(SolutionDir)..\..\nasm\nasm.exe" -f coff "i386\zsnesc4.asm" "-oi386\zsnesc4.obj"
popd
上記のコマンドに出てくる11個の*.objファイルをプロジェクトに追加する。ただしコマンドがコメントアウトされている2つ(c4.objとzsnesc4.obj)はビルドから除外しておくこと。
・SARマクロ(sar.h)が原因でコンパイラが死ぬので、このマクロを不使用にするためにport.hの277行のRIGHTSHIFT_IS_SARマクロ定義を未定義にする。
ここまでの手順でビルドが通る。
TODO:
・プリプロセッサZSNES_C4を有効にする時の設定
これでおしまいだよ
(require 'cl) ; for cl-seq (defvar sangels-movies-dir nil) (defvar sangels-player "c:/Program Files/GRETECH/GomPlayer/GOM.exe") (defvar sangels-sort-by 'sangels-sort-by-rate) (defvar sangels-rate-file "~/.emacs.d/.sangels/rate") (defvar sangels-buffer "*sangels*") (defvar sangels-thumbnail "00_thumbnail.jpg") (defvar sangels-m3u "00_movies.m3u") (defface sangels-name '((t (:family "fixed" :weight bold :height 3.0))) "") (defface sangels-rate '((t (:family "fixed" :weight bold :height 1.5))) "") (defvar sangels-mode-map (let ((map (make-sparse-keymap))) (define-key map "n" 'next-line) (define-key map "p" 'previous-line) (define-key map (kbd "RET") 'sangels-select) (define-key map (kbd "SPC") 'sangels-select) (define-key map "q" 'sangels-quit) (define-key map "+" 'sangels-rate-plus) (define-key map "-" 'sangels-rate-minus) map)) (defvar sangels-mode-hook nil) (defvar sangels-highlight-overlay nil) (defvar sangels-rate-alist nil) (defconst sangels-rate-max 6) (defun sangels-insert-movies () (save-excursion (let* ((inhibit-read-only t) (files (remove-if-not (lambda (x) (and (not (member (file-name-nondirectory x) '("." ".."))) (file-directory-p x) (member sangels-thumbnail (directory-files x)))) (directory-files sangels-movies-dir t))) (ids (mapcar 'file-name-nondirectory files))) (erase-buffer) (setq ids (sangels-sort-ids ids)) (dolist (id ids) (let ((file (expand-file-name id sangels-movies-dir)) (pos (point))) (insert-image-file (expand-file-name sangels-thumbnail file)) (end-of-line) (insert (propertize (format "%-15s " id) 'face 'sangels-name)) (sangels-insert-rate id) (insert "\n") (put-text-property pos (point) 'sangels-id id)))))) (defun sangels-sort-by-name (a b) (string< a b)) (defun sangels-sort-by-rate (a b) (or (> (sangels-rate a) (sangels-rate b)) (sangels-sort-by-name a b))) (defun sangels-sort-ids (ids) (sort ids (or sangels-sort-by 'sangels-sort-by-name))) (defun sangels-insert-rate (id) (let ((rate (sangels-rate id))) (insert (propertize (concat (make-string rate ?★) (make-string (- sangels-rate-max rate) ?☆)) 'sangels-rate t 'face 'sangels-rate)))) (defun sangels-current-id () (get-text-property (point) 'sangels-id)) (defun sangels-play-movie (movie) (let ((explicit-shell-file-name "cmdproxy") (shell-file-name "cmdproxy")) (apply 'call-process-shell-command "start" nil "*tmp*" nil (mapcar (lambda (x) (concat "\"" x "\"")) (list sangels-player (unix-to-dos-filename movie)))))) (defun sangels-select () (interactive) (let ((id (sangels-current-id))) (when id (sangels-play-movie (expand-file-name sangels-m3u (expand-file-name id sangels-movies-dir)))))) (defun sangels-quit () (interactive) (kill-buffer sangels-buffer)) (defun sangels-rate (id) (or (cdr (assoc id sangels-rate-alist)) (/ sangels-rate-max 2))) (defun sangels-rate-save () (interactive) (let ((dir (file-name-directory sangels-rate-file))) (unless (file-exists-p dir) (make-directory dir t))) (with-temp-file sangels-rate-file (insert (pp-to-string sangels-rate-alist)))) (defun sangels-rate-load () (interactive) (when (file-exists-p sangels-rate-file) (with-temp-buffer (insert-file-contents sangels-rate-file) (goto-char (point-min)) (setq sangels-rate-alist (read (current-buffer)))))) (defun sangels-rate-plus (&optional n) (interactive "p") (setq n (or n 1)) (let* ((id (sangels-current-id)) (cell (assoc id sangels-rate-alist))) (unless cell (setq cell (cons id (sangels-rate id))) (setq sangels-rate-alist (cons cell sangels-rate-alist))) (setcdr cell (+ (cdr cell) n)) (save-excursion (let ((inhibit-read-only t)) (beginning-of-line) (goto-char (next-single-property-change (point) 'sangels-rate)) (delete-region (point) (next-single-property-change (point) 'sangels-rate)) (sangels-insert-rate id))) (sangels-rate-save))) (defun sangels-rate-minus (&optional n) (interactive "p") (setq n (or n -1)) (sangels-rate-plus (- n))) (defun sangels-post-command-hook () (save-excursion (move-overlay sangels-highlight-overlay (progn (move-beginning-of-line 1) (point)) (progn (move-end-of-line 1) (forward-line) (point)) (current-buffer)))) (defun sangels-mode () (interactive) (kill-all-local-variables) (use-local-map sangels-mode-map) (setq sangels-highlight-overlay (make-overlay 0 0)) (overlay-put sangels-highlight-overlay 'face 'highlight) (overlay-put sangels-highlight-overlay 'evaporate t) (make-local-variable 'post-command-hook) (add-hook 'post-command-hook 'sangels-post-command-hook nil t) (setq major-mode 'sangels-mode) (setq mode-name "Sangels") (run-mode-hooks 'sangels-mode-hook) (set-buffer-modified-p nil) (setq buffer-read-only t)) (defun sangels (&optional arg) (interactive "P") (when (or arg (not sangels-movies-dir)) (setq sangels-movies-dir (read-directory-name "movies dir: "))) (sangels-rate-load) (switch-to-buffer (get-buffer-create sangels-buffer)) (sangels-insert-movies) (sangels-mode)) (provide 'sangels)