/ src / pboard / pbcopy.m
pbcopy.m
 1  /*
 2  This file is part of Darling.
 3  
 4  Copyright (C) 2019 Lubos Dolezel
 5  
 6  Darling is free software: you can redistribute it and/or modify
 7  it under the terms of the GNU General Public License as published by
 8  the Free Software Foundation, either version 3 of the License, or
 9  (at your option) any later version.
10  
11  Darling is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15  
16  You should have received a copy of the GNU General Public License
17  along with Darling.  If not, see <http://www.gnu.org/licenses/>.
18  */
19  
20  
21  #import <Foundation/Foundation.h>
22  #import <AppKit/NSPasteboard.h>
23  #import <AppKit/NSDisplay.h>
24  
25  int main(int argc, const char *argv[]) {
26      [NSAutoreleasePool new];
27  
28      NSFileHandle *handle = [NSFileHandle fileHandleWithStandardInput];
29      NSData *data = [handle readDataToEndOfFile];
30  
31      NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
32      [pasteboard setData: data forType: NSStringPboardType];
33  
34      // While we're the clipboard owner, make sure to process incoming requests.
35      NSInteger changeCount = [pasteboard changeCount];
36      NSDisplay *display = [NSDisplay currentDisplay];
37      while (changeCount == [pasteboard changeCount]) {
38          [display nextEventMatchingMask: NSAnyEventMask
39                               untilDate: [NSDate distantFuture]
40                                  inMode: NSDefaultRunLoopMode
41                                 dequeue: YES];
42      }
43  }