World Library  
Flag as Inappropriate
Email this Article

The Sicilian (film)

Article Id: WHEBN0009222642
Reproduction Date:

Title: The Sicilian (film)  
Author: World Heritage Encyclopedia
Language: English
Subject: Michael Cimino, Year of the Dragon (film), Thesiciliandvd.jpg, Ramon Bieri, The Godfather (novel)
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

The Sicilian (film)

The Sicilian
Theatrical release poster
Directed by Michael Cimino
Produced by Joann Carelli
Michael Cimino
Bruce McNall
Sidney Beckerman (executive producer)
Screenplay by Steve Shagan
Gore Vidal (uncredited)
Based on The Sicilian by
Mario Puzo
Starring
Music by David Mansfield
Cinematography Alex Thomson
Edited by Françoise Bonnot
Production
company
Distributed by 20th Century Fox
Release dates
  • October 23, 1987 (1987-10-23)
Running time
115 minutes (theatrical)
146 minutes (director's cut)
Country United States
Language English
Italian
Budget $16.5 million (Estimated)[a 1]
Box office $5,406,879 (Domestic)[1]

The Sicilian is a 1987 action film based on the novel of the same name by Mario Puzo. It was directed by Michael Cimino and stars Christopher Lambert, Joss Ackland and Terence Stamp.

Contents

  • Plot 1
  • Cast 2
  • Production 3
    • Development 3.1
    • Shooting 3.2
    • Post-production 3.3
  • Lawsuit 4
  • Release 5
  • Reception 6
  • Novel 7
  • Alternative versions 8
  • See also 9
  • References 10
    • Annotations 10.1
    • Notes 10.2
    • Bibliography 10.3
  • Further reading 11
  • External links 12

Plot

Salvatore Giuliano, the infamous bandit, together with his rag-tag band of guerrillas, attempted to liberate early 1950s Sicily from Italian rule and make it an American state. Giuliano robs from the rich conservative landowners to give to the peasants, who in turn hail him as their savior. As his popularity grows, so does his ego, and he eventually thinks he is above the power of his backer, Mafia Don Masino Croce. The Don, in turn, sets out to kill the upstart by convincing his cousin and closest adviser Gaspare to assassinate him.

Cast

Production

Development

Due to the huge success of The Godfather, Mario Puzo was given $1 million for the movie rights to his novel The Sicilian.[3] David Begelman, head of Gladden Entertainment at the time, hired Michael Cimino to direct.[3] When producer Bruce McNall met with Cimino at a dinner in Los Angeles, he complained loudly about the script and Begelman's interference with casting.[4] Cimino wanted Christopher Lambert for the lead role and Begelman was concerned about a French actor starring in a movie about an Italian hero in an English-speaking movie.[4] To move forward, Begelman and McNall gave Cimino what he wanted with regards to the script and casting.[5]

Gore Vidal did some uncredited rewrite work on the film. Vidal sued both screenwriter Steve Shagan and the Writer's Guild of America to receive screenplay credit. "I was defrauded of my work."[6] Vidal eventually won the suit against WGA.[7] In the DVD commentary of Year of the Dragon, Cimino said he learned a lot from working with Vidal.[8]

Shooting

The film was shot on location in Sicily in the spring and summer of 1986.[3] In late April 1986, Begelman and McNall discovered that the film was over budget and behind schedule. The problems involved mostly hang-ups with personnel and equipment, nothing on the scale of Cimino's Heaven's Gate. One exception was some low-level Mafia men who controlled certain locations and union workers. Cimino suggested that Begelman and McNall meet with Mafia men to overcome the impasse. Upon meeting them in a restaurant off the main piazza, the producers discovered that the Mafia men wanted to appear in the film. "Once we all understood," wrote McNall, "the fix was easy. There were plenty of little roles for walk-ons and extras. And if a real role didn't exist, we could pretend to involve some of the guys and throw them a day's pay." Once the problem was solved, Cimino had access to the countryside and the local labor pool.[5]

Post-production

After location work was finished, Cimino took the footage straight to his editing room to begin cutting. Cimino did not report any of his progress on the editing as the months passed until he delivered a 150-minute cut of the film and declared that he was done. Under his contract with the producers, Cimino had the right to final cut as long as the film was under 120 minutes long. Cimino insisted that no more cuts could be made and pressed Begelman and McNall to present the current version to 20th Century Fox, the film's domestic distributor. Before viewing the film, the Fox executives said to the producers that the film was so long that it limited the number of showings a theater could present each day. It had to be trimmed or Fox wouldn't release it.[9]

When Begelman and McNall relayed Fox's ruling to Cimino, he exploded. "I've been cutting for six months. There's nothing more to take out!" he shouted. The producers responded that there had to be a way to tell the story in 120 minutes. Cimino answered, "Fine! You want it shorter, you got it." A few days later, Cimino delivered a new version of the film in which all of the action scenes were cut out. "In the script a big wedding scene in the mountains is followed by an attack on the wedding party." wrote McNall. "In what we saw the wedding was followed by a scene at a hospital, where all the people in nice clothes were being treated for their wounds. He just cut out the battle." Begelman did not wait till the film ended to get on the phone and immediately called Cimino. Cimino said that his contract allowed him final cut in a 120-minute film and what he gave them qualified.[9]

Lawsuit

As a result of the impasse with Cimino, the producers went to arbitration. "Every day that passed without the film being complete cost us and our partners—Fox and Dino DeLaurentiis—money." wrote McNall. "The judge in the arbitration acknowledged that problem and gave us a speedy hearing." Bert Fields represented the producers. Cimino's lawyers used a precedent established by Fields in an earlier case: Fields aided Warren Beatty's win in a dispute over final cut with the producers of the movie Reds, a finding that stated a contract granting a director final cut was absolutely binding. The producers challenged the claim that Cimino's 120-minute version of the film was a legitimate piece of work. "It was an act of bad faith," argued McNall, "no matter what the contract said."[10]

Dino DeLaurentiis was called in to testify as an expert witness. DeLaurentiis had overseen Cimino's Year of the Dragon, set the precedent for giving Cimino final cut in the contract for that film and even gave Cimino a positive recommendation to Begelman for The Sicilian.[10] However, when DeLaurentiis took the stand:

"Final cut? I no give-a him final cut," he declared.
"But we've seen the contract," said Fields.
"Have you seen the side letter?" asked DeLaurentiis.[10]

A subsequently unearthed side letter stated that notwithstanding the contract, Cimino did not have the right to final cut on Year of the Dragon. Fields argued that by withholding the side letter, Cimino defrauded the producers. The judge agreed. Begelman personally trimmed the film to 115 minutes.[10]

Release

Fox released The Sicilian on October 23, 1987 in 370 theaters. The film opened at #7 on the box office charts, grossing $1,720,351 and averaging $4,649 per theater. The film's domestic box office gross eventually totaled $5,406,879.[1] According to McNall, the losses on The Sicilian were offset by the profits from Gladden's other 1987 release Mannequin,[11] which unlike The Sicilian, became a box office hit.

Reception

Critical reaction to the film was fairly negative. Many critics criticized the film's incoherent narrative, muddy visual style, and the casting of Lambert in the lead as Guliano. Gene Siskel and Roger Ebert gave The Sicilian "two thumbs down". Ebert complained about the cinematography: "The film alternates between scenes that are backlit where you can't see the faces and other scenes that were so murky that you couldn't see who was talking." Siskel attacked the film's star, "Let me just go after Christopher Lambert... because here is the center of the film. This would be as if the Al Pacino character in The Godfather were played by a member of the walking dead."[12] In his Chicago Sun-Times review, Ebert claimed The Sicilian continues director Michael Cimino's "record of making an incomprehensible mess out of every other film he directs."[13]

Vincent Canby of The New York Times said, "Cimino's fondness for amber lighting and great, sweeping camera movements are evident from time to time, but the film is mostly a garbled synopsis of the Puzo novel."[14] Variety added "Cimino seems to be aiming for an operatic telling of the short career of the violent 20th-century folk hero [based on Mario Puzo's novel], but falls into an uncomfortable middle ground between European artfulness and stock Hollywood conventions."[15] Hal Hinson of the Washington Post felt it was "unambiguously atrocious, but in that very special, howlingly grandiose manner that only a filmmaker with visions of epic greatness working on a large scale with a multinational cast can achieve."[16] Leonard Maltin rated the film a "BOMB", calling it a "militantly lugubrious bio of Salvatore Guliano".[17]

Producer McNall was personally disappointed by the film. "Given that The Sicilian was a descendant of Puzo's The Godfather," wrote McNall, "I had expected something with the same beauty, drama, and emotion. Cimino had shown with The Deer Hunter that he was capable of making such a movie. But he had failed." McNall even quoted Ebert's review in his appraisal of The Sicilian, "Ebert criticized the cast, the cinematography, the script, even the sound quality. He was right about all of it."[11]

Rotten Tomatoes gives The Sicilian a 13% "Rotten" rating, based on eight reviews.[18]

Novel

The novel is a spin-off of The Godfather (set during Michael's exile in Sicily). However, all references to the Corleones are omitted from the film due to copyright issues.require('Module:No globals')

local p = {}

-- articles in which traditional Chinese preceeds simplified Chinese local t1st = { ["228 Incident"] = true, ["Chinese calendar"] = true, ["Lippo Centre, Hong Kong"] = true, ["Republic of China"] = true, ["Republic of China at the 1924 Summer Olympics"] = true, ["Taiwan"] = true, ["Taiwan (island)"] = true, ["Taiwan Province"] = true, ["Wei Boyang"] = true, }

-- the labels for each part local labels = { ["c"] = "Chinese", ["s"] = "simplified Chinese", ["t"] = "traditional Chinese", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Cantonese Yale", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Zhuyin Fuhao", ["l"] = "literally", }

-- article titles for wikilinks for each part local wlinks = { ["c"] = "Chinese language", ["s"] = "simplified Chinese characters", ["t"] = "traditional Chinese characters", ["p"] = "pinyin", ["tp"] = "Tongyong Pinyin", ["w"] = "Wade–Giles", ["j"] = "Jyutping", ["cy"] = "Yale romanization of Cantonese", ["poj"] = "Pe̍h-ōe-jī", ["zhu"] = "Bopomofo", }

-- for those parts which are to be treated as languages their ISO code local ISOlang = { ["c"] = "zh", ["t"] = "zh-Hant", ["s"] = "zh-Hans", ["p"] = "zh-Latn-pinyin", ["tp"] = "zh-Latn", ["w"] = "zh-Latn-wadegile", ["j"] = "yue-jyutping", ["cy"] = "yue", ["poj"] = "hak", ["zhu"] = "zh-Bopo", }

local italic = { ["p"] = true, ["tp"] = true, ["w"] = true, ["j"] = true, ["cy"] = true, ["poj"] = true, } -- Categories for different kinds of Chinese text local cats = { ["c"] = "", ["s"] = "", ["t"] = "", }

function p.Zh(frame) -- load arguments module to simplify handling of args local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return p._Zh(args) end function p._Zh(args) local uselinks = not (args["links"] == "no") -- whether to add links local uselabels = not (args["labels"] == "no") -- whether to have labels local capfirst = args["scase"] ~= nil

        local t1 = false -- whether traditional Chinese characters go first
        local j1 = false -- whether Cantonese Romanisations go first
        local testChar
        if (args["first"]) then
                 for testChar in mw.ustring.gmatch(args["first"], "%a+") do
          if (testChar == "t") then
           t1 = true
           end
          if (testChar == "j") then
           j1 = true
           end
         end
        end
        if (t1 == false) then
         local title = mw.title.getCurrentTitle()
         t1 = t1st[title.text] == true
        end

-- based on setting/preference specify order local orderlist = {"c", "s", "t", "p", "tp", "w", "j", "cy", "poj", "zhu", "l"} if (t1) then orderlist[2] = "t" orderlist[3] = "s" end if (j1) then orderlist[4] = "j" orderlist[5] = "cy" orderlist[6] = "p" orderlist[7] = "tp" orderlist[8] = "w" end -- rename rules. Rules to change parameters and labels based on other parameters if args["hp"] then -- hp an alias for p ([hanyu] pinyin) args["p"] = args["hp"] end if args["tp"] then -- if also Tongyu pinyin use full name for Hanyu pinyin labels["p"] = "Hanyu Pinyin" end if (args["s"] and args["s"] == args["t"]) then -- Treat simplified + traditional as Chinese if they're the same args["c"] = args["s"] args["s"] = nil args["t"] = nil elseif (not (args["s"] and args["t"])) then -- use short label if only one of simplified and traditional labels["s"] = labels["c"] labels["t"] = labels["c"] end local body = "" -- the output string local params -- for creating HTML spans local label -- the label, i.e. the bit preceeding the supplied text local val -- the supplied text -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if (args[part]) then -- build label label = "" if (uselabels) then label = labels[part] if (capfirst) then label = mw.language.getContentLanguage():ucfirst(

Alternative versions

A 146-minute director's cut was released theatrically in France and is available on video[19] and at least in Europe as a region 2 DVD.[20] This version received mixed reviews when it initially opened in Paris. Maltin gave the director's cut of The Sicilian two stars out of four, writing that the film "seems shorter, thanks to more coherency and Sukowa's strengthened role. Neither version, though, can overcome two chief liabilities: Cimino's missing sense of humor and Lambert's laughably stone-faced performance."[17] Film critic F.X. Feeney lauded this version of the film, and in an article of L.A. Weekly, he compared and contrasted the two particular versions. He mentioned that Fox's cut removed "three major sequences, four major scenes, and about 100 lines of dialogue," stated that Lambert's performance was botched by the studio's tinkering, and that Sukowa's voice was dubbed by another actress in said version. Feeney went on to call The Sicilian "a masterpiece" and "a work of genius," and declared it as the best film of 1987.[21][22]

See also

References

Annotations


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ Estimate based on: "Total American gross at the box office was $5.5 million, about a third of our production costs." (3 x 5.5=16.5). McNall & D'Antonio, Pg. 115.

Notes


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ a b The Sicilian. Box Office Mojo. Retrieved 2010-07-17.
  2. ^ The Sicilian (1987) - Trivia. IMDb. Retrieved 2010-09-10.
  3. ^ a b c McNall & D'Antonio, Pg. 103
  4. ^ a b McNall & D'Antonio, Pg. 104
  5. ^ a b McNall & D'Antonio, Pg. 105
  6. ^
  7. ^
  8. ^ Feature-length commentary on Year of the Dragon by director Michael Cimino. Located on the Region 1 DVD.
  9. ^ a b McNall & D'Antonio, Pg. 113
  10. ^ a b c d McNall & D'Antonio, Pg. 114
  11. ^ a b McNall & D'Antonio, Pg. 115
  12. ^
  13. ^
  14. ^
  15. ^
  16. ^
  17. ^ a b
  18. ^ The Sicilian. Rotten Tomatoes. Retrieved 2010-07-17.
  19. ^
  20. ^
  21. ^ [1]
  22. ^ [2]

Bibliography

Further reading

External links

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.