yawmppp: Add version 2.0.2 to the repository.
Obtained from: https://archive.org/download/tucows_59618_yawmppp/yawmppp-2.0.2.tar.gz
This commit is contained in:
		
							parent
							
								
									c1f2d4c11b
								
							
						
					
					
						commit
						c50ceb41d7
					
				
					 57 changed files with 14286 additions and 0 deletions
				
			
		
							
								
								
									
										89
									
								
								yawmppp/CHANGELOG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								yawmppp/CHANGELOG
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,89 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CHANGELOG for YAWMPPP
 | 
				
			||||||
 | 
					$Id: CHANGELOG,v 1.2 2001/04/21 18:29:33 bergo Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2.0.2 (Apr 21 2001)
 | 
				
			||||||
 | 
					 * fixed minor bug when generating files with the
 | 
				
			||||||
 | 
					   "don't generate login password pairs" option
 | 
				
			||||||
 | 
					   turned on (a CONNECT line was not being added)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2.0.1 (Mar 3 2001)
 | 
				
			||||||
 | 
					 * fixed minor bug: the installation script now creates
 | 
				
			||||||
 | 
					   the /etc/ppp/peers directory if it is missing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2.0.0 (Feb 22 2001)
 | 
				
			||||||
 | 
					 * Revamped the way the GUI manages config files, now pppd
 | 
				
			||||||
 | 
					   files go under /etc/ppp/peers (and you'll have to
 | 
				
			||||||
 | 
					   exercise your root password sometimes when configuring
 | 
				
			||||||
 | 
					   ISP info). Configuration now goes under ~/.yawmppp2
 | 
				
			||||||
 | 
					 * Changed RX/TX leds for arrows in the Window Maker applet.
 | 
				
			||||||
 | 
					 * Dropped old named-based DNS support
 | 
				
			||||||
 | 
					 * Added support for the usepeerdns option in pppd.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.2.1 (Apr 12 2000)
 | 
				
			||||||
 | 
					 * Increased Modem Init Strings maximum size from 64 to
 | 
				
			||||||
 | 
					   256 characters.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.2.0 (Apr 3 2000)
 | 
				
			||||||
 | 
					 * Fixed bug regarding user names made up of digits
 | 
				
			||||||
 | 
					   only.
 | 
				
			||||||
 | 
					 * Added the yawmppp.thin applet.
 | 
				
			||||||
 | 
					 * Made the -caution option default.
 | 
				
			||||||
 | 
					 * Bug fix: now modem init strings may contain spaces.
 | 
				
			||||||
 | 
					 * Bug fix: the config applet wasn't recognizing the first
 | 
				
			||||||
 | 
					   init string, it was putting ATZ always. As no one has
 | 
				
			||||||
 | 
					   complained about it, I'm surprised to know that ATZ is
 | 
				
			||||||
 | 
					   good for everyone :)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.1.3 (Mar 24 2000)
 | 
				
			||||||
 | 
					 * Fixed bug in Help system (memory buffer for man pages was too
 | 
				
			||||||
 | 
					   small and the Configuration program dumped core). Now the
 | 
				
			||||||
 | 
					   buffers are initialized with 128K instead of 64K and will grow
 | 
				
			||||||
 | 
					   on demand. Thanks to Thomas Hood for reporting this one.
 | 
				
			||||||
 | 
					 * Added the -caution and -paranoid command line options, meant to
 | 
				
			||||||
 | 
					   help PCMCIA & APM users.
 | 
				
			||||||
 | 
					 * Minor documentation fixes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.1.2 (Mar 20 2000)
 | 
				
			||||||
 | 
					 * Added the online help (er... man) system.
 | 
				
			||||||
 | 
					 * Tried to fix a compilation bug that happened with Debian regarding the
 | 
				
			||||||
 | 
					   double inclusion of linux/socket.h and sys/socket.h. I don't have
 | 
				
			||||||
 | 
					   a Debian system to test, so I don't know for sure if it will work
 | 
				
			||||||
 | 
					   right now (Debian only).
 | 
				
			||||||
 | 
					 * Added the --with-x-include-dirs= option to the configure script. This
 | 
				
			||||||
 | 
					   should be helpful for FreeBSD users.
 | 
				
			||||||
 | 
					 * Due to the change below, changed the caption on the
 | 
				
			||||||
 | 
					   "Post-login conversation" button to "Additional conversation".
 | 
				
			||||||
 | 
					 * Added the "Don't generate login/password pairs" checkbox to help people
 | 
				
			||||||
 | 
					   with even stranger ISP conversations. I can't keep it simple if ISPs can't.
 | 
				
			||||||
 | 
					 * Fixed bug in expect/send pair parsing, now usernames, passwords,
 | 
				
			||||||
 | 
					   and all expected/sent strings may contain spaces and escaped
 | 
				
			||||||
 | 
					   quotes (\").
 | 
				
			||||||
 | 
					 * Fixed stop.* script generation (missing space between
 | 
				
			||||||
 | 
					   quote and bracket, thanks to Igor Marinovic for reporting
 | 
				
			||||||
 | 
					   it)
 | 
				
			||||||
 | 
					 * Fixed W,X,Y,Z characters which were apeearing swapped on the
 | 
				
			||||||
 | 
					   dock applet display.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.1.1 (Mar 11 2000)
 | 
				
			||||||
 | 
					 * Fixed small bug in configure script that would prevent
 | 
				
			||||||
 | 
					   yawmppp from building in some FreeBSD systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.1.0 (Mar 7 2000)
 | 
				
			||||||
 | 
					 * Added tooltips to most widgets in the PPP page.
 | 
				
			||||||
 | 
					 * Added capability for more multiple expect/send pairs in the
 | 
				
			||||||
 | 
					   entries.
 | 
				
			||||||
 | 
					 * Added support for PAP/CHAP related options in the pppd
 | 
				
			||||||
 | 
					   command line (the secrets must still be set manually in
 | 
				
			||||||
 | 
					   the secret files, read the FAQ for furhter information)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.0.1 (Feb 29 2000)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 * Added "user <username>" to command line of pppd,
 | 
				
			||||||
 | 
					   which may help PAPers and CHAPers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 * Some of the options shown with yawmppp -h were
 | 
				
			||||||
 | 
					   bogus. Took them out.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.0.0 (Feb 14 2000)
 | 
				
			||||||
 | 
					 * First public release
 | 
				
			||||||
							
								
								
									
										339
									
								
								yawmppp/COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										339
									
								
								yawmppp/COPYING
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,339 @@
 | 
				
			||||||
 | 
							    GNU GENERAL PUBLIC LICENSE
 | 
				
			||||||
 | 
							       Version 2, June 1991
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					                          675 Mass Ave, Cambridge, MA 02139, USA
 | 
				
			||||||
 | 
					 Everyone is permitted to copy and distribute verbatim copies
 | 
				
			||||||
 | 
					 of this license document, but changing it is not allowed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    Preamble
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The licenses for most software are designed to take away your
 | 
				
			||||||
 | 
					freedom to share and change it.  By contrast, the GNU General Public
 | 
				
			||||||
 | 
					License is intended to guarantee your freedom to share and change free
 | 
				
			||||||
 | 
					software--to make sure the software is free for all its users.  This
 | 
				
			||||||
 | 
					General Public License applies to most of the Free Software
 | 
				
			||||||
 | 
					Foundation's software and to any other program whose authors commit to
 | 
				
			||||||
 | 
					using it.  (Some other Free Software Foundation software is covered by
 | 
				
			||||||
 | 
					the GNU Library General Public License instead.)  You can apply it to
 | 
				
			||||||
 | 
					your programs, 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 software, or if you modify it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  For example, if you distribute copies of such a program, whether
 | 
				
			||||||
 | 
					gratis or for a fee, you must give the recipients all the rights that
 | 
				
			||||||
 | 
					you have.  You must make sure that they, too, receive or can get the
 | 
				
			||||||
 | 
					source code.  And you must show them these terms so they know their
 | 
				
			||||||
 | 
					rights.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  We protect your rights with two steps: (1) copyright the software, and
 | 
				
			||||||
 | 
					(2) offer you this license which gives you legal permission to copy,
 | 
				
			||||||
 | 
					distribute and/or modify the software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Also, for each author's protection and ours, we want to make certain
 | 
				
			||||||
 | 
					that everyone understands that there is no warranty for this free
 | 
				
			||||||
 | 
					software.  If the software is modified by someone else and passed on, we
 | 
				
			||||||
 | 
					want its recipients to know that what they have is not the original, 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 redistributors of a free
 | 
				
			||||||
 | 
					program will individually obtain patent licenses, in effect making the
 | 
				
			||||||
 | 
					program proprietary.  To prevent this, we have made it clear that any
 | 
				
			||||||
 | 
					patent must be licensed for everyone's free use or not licensed at all.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The precise terms and conditions for copying, distribution and
 | 
				
			||||||
 | 
					modification follow.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							    GNU GENERAL PUBLIC LICENSE
 | 
				
			||||||
 | 
					   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  0. This License applies to any program or other work which contains
 | 
				
			||||||
 | 
					a notice placed by the copyright holder saying it may be distributed
 | 
				
			||||||
 | 
					under the terms of this General Public License.  The "Program", below,
 | 
				
			||||||
 | 
					refers to any such program or work, and a "work based on the Program"
 | 
				
			||||||
 | 
					means either the Program or any derivative work under copyright law:
 | 
				
			||||||
 | 
					that is to say, a work containing the Program or a portion of it,
 | 
				
			||||||
 | 
					either verbatim or with modifications and/or translated into another
 | 
				
			||||||
 | 
					language.  (Hereinafter, translation is included without limitation in
 | 
				
			||||||
 | 
					the term "modification".)  Each licensee is addressed as "you".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Activities other than copying, distribution and modification are not
 | 
				
			||||||
 | 
					covered by this License; they are outside its scope.  The act of
 | 
				
			||||||
 | 
					running the Program is not restricted, and the output from the Program
 | 
				
			||||||
 | 
					is covered only if its contents constitute a work based on the
 | 
				
			||||||
 | 
					Program (independent of having been made by running the Program).
 | 
				
			||||||
 | 
					Whether that is true depends on what the Program does.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  1. You may copy and distribute verbatim copies of the Program's
 | 
				
			||||||
 | 
					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 give any other recipients of the Program a copy of this License
 | 
				
			||||||
 | 
					along with the Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 Program or any portion
 | 
				
			||||||
 | 
					of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
 | 
				
			||||||
 | 
					    stating that you changed the files and the date of any change.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    b) You must cause any work that you distribute or publish, that in
 | 
				
			||||||
 | 
					    whole or in part contains or is derived from the Program or any
 | 
				
			||||||
 | 
					    part thereof, to be licensed as a whole at no charge to all third
 | 
				
			||||||
 | 
					    parties under the terms of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    c) If the modified program normally reads commands interactively
 | 
				
			||||||
 | 
					    when run, you must cause it, when started running for such
 | 
				
			||||||
 | 
					    interactive use in the most ordinary way, to print or display an
 | 
				
			||||||
 | 
					    announcement including an appropriate copyright notice and a
 | 
				
			||||||
 | 
					    notice that there is no warranty (or else, saying that you provide
 | 
				
			||||||
 | 
					    a warranty) and that users may redistribute the program under
 | 
				
			||||||
 | 
					    these conditions, and telling the user how to view a copy of this
 | 
				
			||||||
 | 
					    License.  (Exception: if the Program itself is interactive but
 | 
				
			||||||
 | 
					    does not normally print such an announcement, your work based on
 | 
				
			||||||
 | 
					    the Program is not required to print an announcement.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					These requirements apply to the modified work as a whole.  If
 | 
				
			||||||
 | 
					identifiable sections of that work are not derived from the Program,
 | 
				
			||||||
 | 
					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 Program, 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 Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In addition, mere aggregation of another work not based on the Program
 | 
				
			||||||
 | 
					with the Program (or with a work based on the Program) on a volume of
 | 
				
			||||||
 | 
					a storage or distribution medium does not bring the other work under
 | 
				
			||||||
 | 
					the scope of this License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  3. You may copy and distribute the Program (or a work based on it,
 | 
				
			||||||
 | 
					under Section 2) in object code or executable form under the terms of
 | 
				
			||||||
 | 
					Sections 1 and 2 above provided that you also do one of the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    a) 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; or,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    b) Accompany it with a written offer, valid for at least three
 | 
				
			||||||
 | 
					    years, to give any third party, for a charge no more than your
 | 
				
			||||||
 | 
					    cost of physically performing source distribution, a complete
 | 
				
			||||||
 | 
					    machine-readable copy of the corresponding source code, to be
 | 
				
			||||||
 | 
					    distributed under the terms of Sections 1 and 2 above on a medium
 | 
				
			||||||
 | 
					    customarily used for software interchange; or,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    c) Accompany it with the information you received as to the offer
 | 
				
			||||||
 | 
					    to distribute corresponding source code.  (This alternative is
 | 
				
			||||||
 | 
					    allowed only for noncommercial distribution and only if you
 | 
				
			||||||
 | 
					    received the program in object code or executable form with such
 | 
				
			||||||
 | 
					    an offer, in accord with Subsection b above.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The source code for a work means the preferred form of the work for
 | 
				
			||||||
 | 
					making modifications to it.  For an executable work, 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 executable.  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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If distribution of executable or 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 counts as
 | 
				
			||||||
 | 
					distribution of the source code, even though third parties are not
 | 
				
			||||||
 | 
					compelled to copy the source along with the object code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  4. You may not copy, modify, sublicense, or distribute the Program
 | 
				
			||||||
 | 
					except as expressly provided under this License.  Any attempt
 | 
				
			||||||
 | 
					otherwise to copy, modify, sublicense or distribute the Program 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  5. 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 Program or its derivative works.  These actions are
 | 
				
			||||||
 | 
					prohibited by law if you do not accept this License.  Therefore, by
 | 
				
			||||||
 | 
					modifying or distributing the Program (or any work based on the
 | 
				
			||||||
 | 
					Program), you indicate your acceptance of this License to do so, and
 | 
				
			||||||
 | 
					all its terms and conditions for copying, distributing or modifying
 | 
				
			||||||
 | 
					the Program or works based on it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  6. Each time you redistribute the Program (or any work based on the
 | 
				
			||||||
 | 
					Program), the recipient automatically receives a license from the
 | 
				
			||||||
 | 
					original licensor to copy, distribute or modify the Program 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  7. 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 Program at all.  For example, if a patent
 | 
				
			||||||
 | 
					license would not permit royalty-free redistribution of the Program 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 Program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  8. If the distribution and/or use of the Program is restricted in
 | 
				
			||||||
 | 
					certain countries either by patents or by copyrighted interfaces, the
 | 
				
			||||||
 | 
					original copyright holder who places the Program 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  9. The Free Software Foundation may publish revised and/or new versions
 | 
				
			||||||
 | 
					of the 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 Program
 | 
				
			||||||
 | 
					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 Program does not specify a version number of
 | 
				
			||||||
 | 
					this License, you may choose any version ever published by the Free Software
 | 
				
			||||||
 | 
					Foundation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  10. If you wish to incorporate parts of the Program into other free
 | 
				
			||||||
 | 
					programs whose distribution conditions are different, 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 | 
				
			||||||
 | 
					FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 | 
				
			||||||
 | 
					OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 | 
				
			||||||
 | 
					PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU.  SHOULD THE
 | 
				
			||||||
 | 
					PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 | 
				
			||||||
 | 
					REPAIR OR CORRECTION.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
 | 
				
			||||||
 | 
					PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 | 
				
			||||||
 | 
					POSSIBILITY OF SUCH DAMAGES.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							     END OF TERMS AND CONDITIONS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Appendix: How to Apply These Terms to Your New Programs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  If you develop a new program, and you want it to be of the greatest
 | 
				
			||||||
 | 
					possible use to the public, the best way to achieve this is to make it
 | 
				
			||||||
 | 
					free software which everyone can redistribute and change under these terms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  To do so, attach the following notices to the program.  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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <one line to give the program's name and a brief idea of what it does.>
 | 
				
			||||||
 | 
					    Copyright (C) 19yy  <name of author>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    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 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, write to the Free Software
 | 
				
			||||||
 | 
					    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Also add information on how to contact you by electronic and paper mail.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the program is interactive, make it output a short notice like this
 | 
				
			||||||
 | 
					when it starts in an interactive mode:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Gnomovision version 69, Copyright (C) 19yy name of author
 | 
				
			||||||
 | 
					    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 | 
				
			||||||
 | 
					    This is free software, and you are welcome to redistribute it
 | 
				
			||||||
 | 
					    under certain conditions; type `show c' for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The hypothetical commands `show w' and `show c' should show the appropriate
 | 
				
			||||||
 | 
					parts of the General Public License.  Of course, the commands you use may
 | 
				
			||||||
 | 
					be called something other than `show w' and `show c'; they could even be
 | 
				
			||||||
 | 
					mouse-clicks or menu items--whatever suits your program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should also get your employer (if you work as a programmer) or your
 | 
				
			||||||
 | 
					school, if any, to sign a "copyright disclaimer" for the program, if
 | 
				
			||||||
 | 
					necessary.  Here is a sample; alter the names:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 | 
				
			||||||
 | 
					  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <signature of Ty Coon>, 1 April 1989
 | 
				
			||||||
 | 
					  Ty Coon, President of Vice
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This General Public License does not permit incorporating your program into
 | 
				
			||||||
 | 
					proprietary programs.  If your program is a subroutine library, you may
 | 
				
			||||||
 | 
					consider it more useful to permit linking proprietary applications with the
 | 
				
			||||||
 | 
					library.  If this is what you want to do, use the GNU Library General
 | 
				
			||||||
 | 
					Public License instead of this License.
 | 
				
			||||||
							
								
								
									
										164
									
								
								yawmppp/FAQ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								yawmppp/FAQ
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,164 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					YAWMPPP FAQ
 | 
				
			||||||
 | 
					$Id: FAQ,v 1.2 2001/04/21 18:29:33 bergo Exp $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1 Generic
 | 
				
			||||||
 | 
					1.1 How can I see what is going on with my connection ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.2 Nothing happens when I hit the "V" button.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.3 Yawmppp/pppd complain about not having root privileges.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.4 Why doesn't it shows with the NeXTSTEP(tm) look
 | 
				
			||||||
 | 
					    in my system as it does in the screenshots ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.X Where can I get more info ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2 Specific
 | 
				
			||||||
 | 
					2.1 How do I setup PAP/CHAP ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2.2 My modem dials, connects, but hangs up some seconds later.
 | 
				
			||||||
 | 
					    What is happening ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q1.1: How can I see what is going on with my connection ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A1.1: The ppp daemon throws lots of logging information (if asked to),
 | 
				
			||||||
 | 
					      but some of this information may get lost.
 | 
				
			||||||
 | 
					      Change your /etc/syslog.conf file so that is has a line
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        daemon,local2.debug,daemon.notice          /etc/ppp/log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (the separation is made out of *tabs*, NOT spaces!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      and create a zero-sized log file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        touch /etc/ppp/log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Then restart the syslog daemon (e.g.: send a SIGHUP to it as root).
 | 
				
			||||||
 | 
					      Then enable the debug and kdebug options at yawmppp.pref's PPP options
 | 
				
			||||||
 | 
					      notebook page.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      The log file should give more information than you actually need.
 | 
				
			||||||
 | 
					      Even if you don't want to change your logging configuration, some of
 | 
				
			||||||
 | 
					      pppd's log output may go to /var/log/messages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q1.2: Nothing happens when I hit the "V" button.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A1.2: The pppd daemon requires root privileges to run. The solution here is
 | 
				
			||||||
 | 
					      to set the setuid bit on pppd's executable:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chmod 4755 `which pppd`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      You must run this as root. Notice that the quotes are backticks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q1.3: Yawmppp/pppd complain about not having root privileges.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A1.3: Maybe you're trying a noauth connection with a non-setuid pppd. If you
 | 
				
			||||||
 | 
					      really need to keep pppd non-setuid root, add the
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       noauth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      line to your
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       /etc/ppp/options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q1.4: Why doesn't it shows with the NeXTSTEP(tm) look
 | 
				
			||||||
 | 
					      in my system as it does in the screenshots ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A1.4: The GTK+ GUI toolkit allows themeing. It means that you may turn
 | 
				
			||||||
 | 
					      your GTK+ applications to look like Macintosh(tm), Aqua(tm),
 | 
				
			||||||
 | 
					      NeXT(tm) or whatever you want. Even Windows(tm) if you're sick
 | 
				
			||||||
 | 
					      enough for it.
 | 
				
			||||||
 | 
					      You can make your themes or download ready ones (faster).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      There are lots of GTK+ themes at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      http://gtk.themes.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      You can browse documentation on how to add the themes at the same
 | 
				
			||||||
 | 
					      site. To use gtk.themes.org pixmap themes you'll probably need
 | 
				
			||||||
 | 
					      the gtk-engines and imlib packages, you can find them perusing
 | 
				
			||||||
 | 
					      the site.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      The NeXT look seen in the screenshots at yawmppp.seul.org is
 | 
				
			||||||
 | 
					      provided by the Xenophilia engine:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      http://www.obsession.se/johan/gtk.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (if this link ever gets broken, search for Xenophilia at
 | 
				
			||||||
 | 
					       freshmeat.net)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q1.X: Where can I get more info ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A1.X: You can read the PPP-HOWTO and ISP-Hookup-HOWTO from the LDP
 | 
				
			||||||
 | 
					      (Linux Documentation Project), available from
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       http://sunsite.unc.edu/LDP/HOWTO/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      (Linux distributions may have it installed under /usr/doc/HOWTO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      You can also read the ppp FAQ that comes with ppp's source, which
 | 
				
			||||||
 | 
					      can be downloaded from:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					       ftp://cs.anu.edu.au/pub/software/ppp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q2.1: How do I setup PAP/CHAP ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A2.1: PAP and CHAP are authentication protocols and some ISPs require them to
 | 
				
			||||||
 | 
					      be used. Their purpose is to confirm identity throughout the connection.
 | 
				
			||||||
 | 
					      Unless you're afraid of someone tapping your phone line and transmitting
 | 
				
			||||||
 | 
					      "bogus" data through YOUR PPP link, you should not worry about it, unless
 | 
				
			||||||
 | 
					      your ISP does.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      First, you'll have to set yawmppp.pref's local PPP options on your
 | 
				
			||||||
 | 
					      ISP entry to reflect the desired behaviour about CHAP/PAP.
 | 
				
			||||||
 | 
					      If your ISP doesn't even present a login prompt, you'll want to
 | 
				
			||||||
 | 
					      check the "don't generate login/password pairs" in the "More Settings"
 | 
				
			||||||
 | 
					      dialog.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      Then, as root, edit /etc/ppp/chap-secrets and/or /etc/ppp/pap-secrets
 | 
				
			||||||
 | 
					      as desired.
 | 
				
			||||||
 | 
					      The ppp FAQ (included in the source distribution of ppp) tells the nitty
 | 
				
			||||||
 | 
					      gritty, but basically you'll have a set of lines, one for each ISP that
 | 
				
			||||||
 | 
					      reads like this:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        username * password
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      where username is your username, password is your password. The
 | 
				
			||||||
 | 
					      first * means the server (any) and the second * means the allowed IPs
 | 
				
			||||||
 | 
					      (any). The log output of ppp may help you if you still can't get a
 | 
				
			||||||
 | 
					      conection. Read Q1.1 for instructions to get the most of ppp's log.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Q2.2: My modem dials, connects, but hangs up some seconds later.
 | 
				
			||||||
 | 
					      What is happening ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A2.2: There are several possibilities, which you will only be sure by reading the
 | 
				
			||||||
 | 
					      logs. Here they are:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      1. bad login/password, or your ISP is under maintenance and refused login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      2. the ISP required CHAP/PAP authentication and you either didn't have
 | 
				
			||||||
 | 
					         a proper secret to give in the secret files (read Q2.1), or
 | 
				
			||||||
 | 
					         has the refuse-chap/refuse-pap options on, or had a bad (wrong) secret.
 | 
				
			||||||
 | 
					         If this is the case, asking help from your ISP is a good idea.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      3. your ISP is taking too long to answer for the initial PPP requests.
 | 
				
			||||||
 | 
					         It may be busy, buggy, bad configured, or gone BSOD (Q2.3).
 | 
				
			||||||
 | 
					         You can try setting on the "passive" option or increase the
 | 
				
			||||||
 | 
					         lcp-max-configure number.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
							
								
								
									
										82
									
								
								yawmppp/INSTALL
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								yawmppp/INSTALL
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,82 @@
 | 
				
			||||||
 | 
					Installation instructions for YAWMPPP. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Upgrading ?
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					If so, just follow the usual INSTALL instructions, run
 | 
				
			||||||
 | 
					yawmppp.pref and click Ok or Apply. It will not
 | 
				
			||||||
 | 
					damage your previous versions' ISP entries or log, and will write the
 | 
				
			||||||
 | 
					new pppd command line to your ~/.yawmppp scripts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Upgrading from 1.x.x to 2.x.x:
 | 
				
			||||||
 | 
					------------------------------
 | 
				
			||||||
 | 
					The configuration files of 2.x.x are placed separated from 1.x.x
 | 
				
			||||||
 | 
					files. You are can uninstall 1.x.x before installing 2.x.x, but it
 | 
				
			||||||
 | 
					isn't necessary. (to do so, unpack the 1.x.x tar.gz, configure and
 | 
				
			||||||
 | 
					make uninstall).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Just notice that if you chmod'ed the files in ~/.yawmppp to
 | 
				
			||||||
 | 
					prevent yawmppp from overwriting your manual changes, the
 | 
				
			||||||
 | 
					new version will not be able to add new data to them, ok ?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NOTE!
 | 
				
			||||||
 | 
					--------------------------------------------------------------
 | 
				
			||||||
 | 
					Installing this program requires root privileges, ask your 
 | 
				
			||||||
 | 
					local system/network administrator kindly if she/he wants
 | 
				
			||||||
 | 
					to install this software for you ;-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					you need root access for installation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					What the installation will do
 | 
				
			||||||
 | 
					----------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						The installation requires a program
 | 
				
			||||||
 | 
					        be copied to /etc/ppp:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /etc/ppp/yagetmodemspeed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        and will also copy an icon to /usr/local/share/icons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the yawmppp binaries will be installed in
 | 
				
			||||||
 | 
					        /usr/local/bin (you can change the /usr/local prefix,
 | 
				
			||||||
 | 
					        see below)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /usr/local/bin/yawmppp
 | 
				
			||||||
 | 
					        /usr/local/bin/yawmppp.pref
 | 
				
			||||||
 | 
					        /usr/local/bin/yawmppp.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        the documentation will be installed in
 | 
				
			||||||
 | 
					        /usr/local/doc/yawmppp-<version>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        and yawmppp's man page will be placed in
 | 
				
			||||||
 | 
					        /usr/local/man/man1 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installation
 | 
				
			||||||
 | 
					--------------------------------------------------------------
 | 
				
			||||||
 | 
					1) % tar zxvf yawmppp-2.x.x.tar.gz
 | 
				
			||||||
 | 
					2) % cd yawmppp-2.x.x
 | 
				
			||||||
 | 
					3) % ./configure
 | 
				
			||||||
 | 
					4) % make
 | 
				
			||||||
 | 
					5) % su
 | 
				
			||||||
 | 
					6) # make install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As non-privileged user:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					7) % yawmppp & (try 'yawmppp -h &' for help) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you have no ISP entries configured you'll see the yawmppp.pref
 | 
				
			||||||
 | 
					GUI.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FreeBSD note: if configure fails to find the X11 includes you may have
 | 
				
			||||||
 | 
					to use the --with-x-includes=DIR option, type "configure --help" for
 | 
				
			||||||
 | 
					information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Extras
 | 
				
			||||||
 | 
					--------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Changing the prefix: if you want the binaries to be installed
 | 
				
			||||||
 | 
					somewhere else than /usr/local, do a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					./configure --prefix=/where/I/want/the/prefix/to/be
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					in the 3) step above.
 | 
				
			||||||
							
								
								
									
										42
									
								
								yawmppp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								yawmppp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					# YAWMPPP toplevel Makefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#GTKLIB = @GTK_LIBS@
 | 
				
			||||||
 | 
					#GTKFLAG = @GTK_FLAGS@
 | 
				
			||||||
 | 
					#RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\"
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build_src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_src:
 | 
				
			||||||
 | 
						@$(MAKE) -C src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						@$(MAKE) -C src install
 | 
				
			||||||
 | 
						$(PROGINST) -d -g 0 -o 0 -m 0755 @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 README @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 COPYING @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 CHANGELOG @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 INSTALL @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 FAQ @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						@$(MAKE) -C src install-strip
 | 
				
			||||||
 | 
						$(PROGINST) -d -g 0 -o 0 -m 0755 @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 README @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 COPYING @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 CHANGELOG @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 INSTALL @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -g 0 -o 0 -m 0644 FAQ @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uninstall:
 | 
				
			||||||
 | 
						@echo "----> Uninstalling YAWMPPP from prefix @prefix@"
 | 
				
			||||||
 | 
						rm -f @prefix@/bin/yawmppp @prefix@/bin/yawmppp.pref @prefix@/bin/yawmppp.log /etc/ppp/managednsonthefly /etc/ppp/yagetmodemspeed @prefix@/share/icons/redphone.xpm @prefix@/share/icons/pppdoc.xpm @prefix@/share/icons/pedestal.xpm @prefix@/man/man1/yawmppp.1x
 | 
				
			||||||
 | 
						rm -rf @prefix@/doc/yawmppp*
 | 
				
			||||||
 | 
						@echo "----> done."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						@$(MAKE) -C src clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						@$(MAKE) -C src distclean
 | 
				
			||||||
 | 
						rm -f config.* Makefile *~
 | 
				
			||||||
							
								
								
									
										278
									
								
								yawmppp/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										278
									
								
								yawmppp/README
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,278 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                               YAWMPPP
 | 
				
			||||||
 | 
					                            version 2.0.2
 | 
				
			||||||
 | 
					               Yet Another PPP Window Maker dock applet
 | 
				
			||||||
 | 
					                       (C) 2000 Felipe Bergo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Table of Contents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Overview
 | 
				
			||||||
 | 
					Requirements
 | 
				
			||||||
 | 
					Installing
 | 
				
			||||||
 | 
					Features
 | 
				
			||||||
 | 
					Files
 | 
				
			||||||
 | 
					Reporting Bugs
 | 
				
			||||||
 | 
					Usage Hints
 | 
				
			||||||
 | 
					  Programs
 | 
				
			||||||
 | 
					  Interface Guide
 | 
				
			||||||
 | 
					  Window Manager Placement
 | 
				
			||||||
 | 
					  Configuration
 | 
				
			||||||
 | 
					    DNS Servers
 | 
				
			||||||
 | 
					    Modem Ports
 | 
				
			||||||
 | 
					    Login/Password expects
 | 
				
			||||||
 | 
					  Trouble?    
 | 
				
			||||||
 | 
					More Documentation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Overview
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					YAWMPPP sits in Window Maker's dock (or AfterStep's Wharf, or keeps
 | 
				
			||||||
 | 
					standing as a 64x64 window with other Window Managers) and manages
 | 
				
			||||||
 | 
					PPP connections. For window managers not capable of docking
 | 
				
			||||||
 | 
					yawmppp also provides a bar shaped version (yawmppp.thin).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It includes a GUI to easily setup your ISP entries, so that you
 | 
				
			||||||
 | 
					don't need to edit CHAT scripts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					YAWMPPP is distributed under the terms of the GNU General Public
 | 
				
			||||||
 | 
					License, version 2 or later (at your choice). A copy of the
 | 
				
			||||||
 | 
					license is provided in the file COPYING in this same directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Requirements
 | 
				
			||||||
 | 
					------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					YAWMPPP is known to run on Linux (tested with 2.2 kernels) and FreeBSD
 | 
				
			||||||
 | 
					(tested with 3.4-RELEASE) and has been reported to work with NetBSD 1.5.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You'll need:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- root access to install YAWMPPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- A kernel with PPP support compiled in.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- pppd, the ppp daemon, installed in /usr/sbin/pppd
 | 
				
			||||||
 | 
					  (currently this path mandatory for the builtin scripts to
 | 
				
			||||||
 | 
					  work). If you wish to use YAWMPPP as non-root pppd must
 | 
				
			||||||
 | 
					  have the setuid bit set. The RedHat installation already
 | 
				
			||||||
 | 
					  brings this set.
 | 
				
			||||||
 | 
					  Version 2.3.11 or newer is recommended.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- the "chat" program (usually included in the pppd package, comes
 | 
				
			||||||
 | 
					  with the FreeBSD distribution too).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- GTK+ 1.2.1 or greater. 1.2.6 recommended.
 | 
				
			||||||
 | 
					  If you don't have it you can grab it from
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  http://www.gtk.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Remember to get the GLib too (needed by GTK+).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  On RedHat-based systems (RedHat itself, Mandrake, Conectiva,
 | 
				
			||||||
 | 
					  Independence, etc.) you'll need these packages installed to
 | 
				
			||||||
 | 
					  compile YAWMPPP:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  glib-1.2.x
 | 
				
			||||||
 | 
					  glib-devel-1.2.x
 | 
				
			||||||
 | 
					  gtk+-1.2.x
 | 
				
			||||||
 | 
					  gtk+-devel-1.2.x
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Author: Felipe Bergo <bergo@seul.org>, who built YAWMPPP
 | 
				
			||||||
 | 
					        using code from the WMPPP application developed by
 | 
				
			||||||
 | 
					        Martijn Pieterse and Antoine Nulle.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        YAWMPPP's web page is located at
 | 
				
			||||||
 | 
					        http://yawmppp.seul.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        For more information on WMPPP see
 | 
				
			||||||
 | 
					        http://windowmaker.mezaway.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Installing
 | 
				
			||||||
 | 
					----------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Read the file INSTALL for instructions. Be sure to read this file
 | 
				
			||||||
 | 
					entirely before using YAWMPPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Features
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					YAWMPPP features all things the standard pppd offers and gives
 | 
				
			||||||
 | 
					you some additional amusements:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        * Integrated online timer;
 | 
				
			||||||
 | 
					        * Integrated modem RX/TX LED's; 
 | 
				
			||||||
 | 
					        * Integrated YAWMPPP status LED; 
 | 
				
			||||||
 | 
					        * Integrated autoscaling PPP transfer statistics;
 | 
				
			||||||
 | 
					        * Integrated bytes/second Speed-O-Meter;
 | 
				
			||||||
 | 
					        * Automatic detection of active ppp interfaces;
 | 
				
			||||||
 | 
					        * Several commandline options (try '-h' for help);
 | 
				
			||||||
 | 
					        * Easy ISP configuration GUI
 | 
				
			||||||
 | 
					        * Multiple ISP entries support
 | 
				
			||||||
 | 
					        * Logging facility with GUI viewer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Files
 | 
				
			||||||
 | 
					-----
 | 
				
			||||||
 | 
					README          This file.
 | 
				
			||||||
 | 
					INSTALL         Installation instructions.
 | 
				
			||||||
 | 
					CHANGELOG       Description of changes.
 | 
				
			||||||
 | 
					COPYING         GNU General Public License Version 2.
 | 
				
			||||||
 | 
					FAQ             Frequently Asked Questions
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Reporting Bugs
 | 
				
			||||||
 | 
					--------------
 | 
				
			||||||
 | 
					If you discover any bugs in this software, please send a 
 | 
				
			||||||
 | 
					bug report to bergo@seul.org and describe the
 | 
				
			||||||
 | 
					problem as detailed as you can.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Usage Hints
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					First of all: you can type "man yawmppp" for help at the command line.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Programs:
 | 
				
			||||||
 | 
					---------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					yawmppp         - The PPP dock applet
 | 
				
			||||||
 | 
					yawmppp.thin    - A PPP applet for non dock-capable window managers
 | 
				
			||||||
 | 
					                  (e.g. Enlightenment, Sapphire...)
 | 
				
			||||||
 | 
					yawmppp.pref    - The Dialing setup tool (can be run from
 | 
				
			||||||
 | 
					                  yawmppp by clicking the left mouse
 | 
				
			||||||
 | 
					                  button in the display area)
 | 
				
			||||||
 | 
					yawmppp.log     - The log view tool (can be run from yawmppp
 | 
				
			||||||
 | 
					                  by clicking the middle or right mouse buttons
 | 
				
			||||||
 | 
					                  in the display area)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Interface guide (yawmppp)
 | 
				
			||||||
 | 
					-------------------------
 | 
				
			||||||
 | 
					Please, don't laugh at the drawing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+-----------------------------+ A : Connection timer
 | 
				
			||||||
 | 
					|+---------------------------+|
 | 
				
			||||||
 | 
					||AAAAAAAAAAA     BB  CC  DD || B : RX LED (blinks when PPP packets
 | 
				
			||||||
 | 
					||AAAAAAAAAAA     BB  CC  DD ||             are received)
 | 
				
			||||||
 | 
					||                           ||
 | 
				
			||||||
 | 
					||EEEEEEEEEEEEEEEEEEEEEEEEEEE|| C : TX LED (blinks when PPP packets
 | 
				
			||||||
 | 
					||EEEEEEEEEEEEEEEEEEEEEEEEEEE||             are sent)
 | 
				
			||||||
 | 
					||EEEEEEEEEEEEEEEEEEEEEEEEEEE||
 | 
				
			||||||
 | 
					||EEEEEEEEEEEEEEEEEEEEEEEEEEE|| D : ON/OFF LED: dark when there is no
 | 
				
			||||||
 | 
					||                           ||            active connection, GREEN if
 | 
				
			||||||
 | 
					||FFFFFFFFFF    GGGGGGGGGGGGG||            the connection is up, YELLOW
 | 
				
			||||||
 | 
					||FFFFFFFFFF    GGGGGGGGGGGGG||            while dialing, RED on error.
 | 
				
			||||||
 | 
					|+---------------------------+|
 | 
				
			||||||
 | 
					|+-----++-----+ +-----++-----+| E : Speed history
 | 
				
			||||||
 | 
					||     ||     | |     ||     ||
 | 
				
			||||||
 | 
					||  <  ||  >  | |  V  ||  X  || F : ISP entry name (short)
 | 
				
			||||||
 | 
					||     ||     | |     ||     ||
 | 
				
			||||||
 | 
					|+-----++-----+ +-----++-----|| G : Connection speed, speed-o-meter,
 | 
				
			||||||
 | 
					+-----------------------------+     error messages
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                < : selects prior ISP. You can't change
 | 
				
			||||||
 | 
					                                    the ISP entry while online
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                > : selects next ISP.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                V : connects to currently selected ISP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                X : closes current connection.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can click the display area with the left mouse button to open the
 | 
				
			||||||
 | 
					ISP configuration tool (yawmppp.pref) or with any other mouse button
 | 
				
			||||||
 | 
					to open the connection log viewer (yawmppp.log).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Window Manager Placement
 | 
				
			||||||
 | 
					------------------------ 
 | 
				
			||||||
 | 
					Window Maker: Window Maker users simply drag and drop YAWMPPP on
 | 
				
			||||||
 | 
					              the WindowMaker Dock or the Clip.
 | 
				
			||||||
 | 
					              Press the right mouse button on YAWMPPP's outer edges and
 | 
				
			||||||
 | 
					              select "Settings..." from the popup menu that appears.
 | 
				
			||||||
 | 
					              Enable the 'Start when WindowMaker is started' option,
 | 
				
			||||||
 | 
					              then click on the 'OK' button in the Docked Applications
 | 
				
			||||||
 | 
					              Panel.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AfterStep:    Afterstep users put something like this in their Wharf rc
 | 
				
			||||||
 | 
					              file "Wharf yawmppp - MaxSwallow "yawmppp" yawmppp &"
 | 
				
			||||||
 | 
					              (this should be somewhere under ~/GNUstep/Library/AfterStep)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Elsewhere:    For other windowmanagers, YAWMPPP runs nicely as a 64x64
 | 
				
			||||||
 | 
					              pixel shaped icon on your desktop. You may prefer to run
 | 
				
			||||||
 | 
					              yawmppp.thin when not using Window Maker or AfterStep.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Configuration
 | 
				
			||||||
 | 
					-------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					YAWMPPP's configuration files stay beneath ~/.yawmppp2, which will
 | 
				
			||||||
 | 
					be created as soon as you run yawmppp for the first time. The main
 | 
				
			||||||
 | 
					configuration file is yawmppprc. You should use the yawmppp.pref
 | 
				
			||||||
 | 
					application to create your entries. If you're willing to edit entries
 | 
				
			||||||
 | 
					by hand, create some bogus entries with yawmppp.pref and take a look
 | 
				
			||||||
 | 
					at the generated files for hints. It should be easy to figure out.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The format has changed since YAWMPPP 1.x.x, thus the
 | 
				
			||||||
 | 
					directory has changed (from ~/.yawmppp to ~/.yawmppp2).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Don't try copying files between 1.x.x and 2.x.x versions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Modem ports
 | 
				
			||||||
 | 
					-----------
 | 
				
			||||||
 | 
					On Linux the serial ports are (or at least should be :-) ):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/dev/cua0  _or_  /dev/ttyS0  : DOS' COM1
 | 
				
			||||||
 | 
					/dev/cua1  _or_  /dev/ttyS1  :  "   COM2
 | 
				
			||||||
 | 
					/dev/cua2  _or_  /dev/ttyS2  :  "   COM3
 | 
				
			||||||
 | 
					/dev/cua3  _or_  /dev/ttyS3  :  "   COM4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you don't know where your modem is, type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dmesg | grep tty
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It should print something like
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ttyS00 at 0x03f8 (irq = 4) is a 16550A
 | 
				
			||||||
 | 
					  ttyS01 at 0x02f8 (irq = 3) is a 16550A
 | 
				
			||||||
 | 
					  ttyS02 at 0x03e8 (irq = 4) is a 16550A
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If it shows the wrong irq to you, add a setserial command
 | 
				
			||||||
 | 
					to one of your boot time scripts (maybe /etc/rc.d/rc.local)
 | 
				
			||||||
 | 
					like:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /bin/setserial /dev/ttyS2 irq 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See "man setserial" for more information.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On FreeBSD the dialout serial ports are
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /dev/cuaa0 (kernel interface sio0)
 | 
				
			||||||
 | 
					  /dev/cuaa1 (kernel interface sio1)
 | 
				
			||||||
 | 
					  /dev/cuaa2 (kernel interface sio2)
 | 
				
			||||||
 | 
					  /dev/cuaa3 (kernel interface sio3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If it fails to recognize your modem's port, or gives it the wrong
 | 
				
			||||||
 | 
					IRQ, you have to compile a new kernel with the correct settings.
 | 
				
			||||||
 | 
					Read the FreeBSD handbook if don't know how to do this
 | 
				
			||||||
 | 
					(/usr/share/doc/books/handbook)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Login/Password Expects
 | 
				
			||||||
 | 
					----------------------
 | 
				
			||||||
 | 
					The supplied expects for login and password are rather common,
 | 
				
			||||||
 | 
					but if it fails, connect to your ISP using a standard communication
 | 
				
			||||||
 | 
					program (like minicom) and watch what the ISP sends to ask for
 | 
				
			||||||
 | 
					login and password.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Trouble?
 | 
				
			||||||
 | 
					--------
 | 
				
			||||||
 | 
					Read the FAQ in this same directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					More Documentation
 | 
				
			||||||
 | 
					------------------
 | 
				
			||||||
 | 
					Linux users can read the ISP-Hookup and PPP howtos. These howtos
 | 
				
			||||||
 | 
					are available from
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  http://sunsite.unc.edu/LDP/HOWTO/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you are on a major Linux distribution the HOWTOs should be
 | 
				
			||||||
 | 
					installed. Try looking beneath /usr/doc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You may also get the ppp source and read the FAQ included, it is
 | 
				
			||||||
 | 
					at
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ftp://cs.anu.edu.au/pub/software/ppp
 | 
				
			||||||
							
								
								
									
										8
									
								
								yawmppp/TODO
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								yawmppp/TODO
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Yawmppp TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Provide an easy way for the user to browse the chat/ppp logs. This
 | 
				
			||||||
 | 
					  is tough because of security guards put around the log files, I'm
 | 
				
			||||||
 | 
					  wondering a way to make it (securely).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										2531
									
								
								yawmppp/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										2531
									
								
								yawmppp/configure
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										179
									
								
								yawmppp/configure.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								yawmppp/configure.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,179 @@
 | 
				
			||||||
 | 
					dnl configure.in for yawmppp
 | 
				
			||||||
 | 
					dnl by Felipe Bergo (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dnl Process this file with autoconf to produce a configure script.
 | 
				
			||||||
 | 
					AC_INIT(src/gtksetup/applet.c)
 | 
				
			||||||
 | 
					AC_PREREQ(2.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_CHECK_PROG(GNU_MAKE,make,yes)
 | 
				
			||||||
 | 
					AC_CHECK_PROG(GOTSED,sed,yes,no)
 | 
				
			||||||
 | 
					AC_PROG_CC
 | 
				
			||||||
 | 
					AC_PROG_INSTALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_HEADER_STDC
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(unistd.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/wait.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/stat.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/param.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/types.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/ioctl.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(sys/socket.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_PATH_X
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					XINC="$x_includes"
 | 
				
			||||||
 | 
					XLIB="$x_libraries"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if test "tmp$no_x" = "tmpyes" ; then
 | 
				
			||||||
 | 
						AC_MSG_ERROR(
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					** You must have the X11R6 system. If you have an X11R6 system installed
 | 
				
			||||||
 | 
					   and are seeing this message, try using the --x-includes and --x-libraries
 | 
				
			||||||
 | 
					   options with configure. Use the --help option for help.
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(X11/Xlib.h,,AC_MSG_WARN(required header file missing ?))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(X11/xpm.h,,AC_MSG_WARN(required header file missing ?))
 | 
				
			||||||
 | 
					AC_HEADER_CHECK(X11/extensions/shape.h,,AC_MSG_WARN(required header file missing ?))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_SUBST(XINC)
 | 
				
			||||||
 | 
					AC_SUBST(XLIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_MSG_CHECKING(Operating System)
 | 
				
			||||||
 | 
					OSTYPE=`uname -s`
 | 
				
			||||||
 | 
					AC_MSG_RESULT("$OSTYPE")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SYSDEF="UNKNOWN"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case $OSTYPE in
 | 
				
			||||||
 | 
					  Linux)
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(asm/types.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(linux/if.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(linux/ppp_defs.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(linux/if_ppp.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    SYSDEF="LINUX"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  FreeBSD)
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/if.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					dnl AC_HEADER_CHECK(net/if_ppp.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/ppp_defs.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    SYSDEF="FREEBSD"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  OpenBSD)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* OpenBSD support not tested - if it works      *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* please report to bergo@seul.org. Good Luck.   *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    sleep 2
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/if.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					dnl AC_HEADER_CHECK(net/if_ppp.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/ppp_defs.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    SYSDEF="OPENBSD"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  NetBSD)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* NetBSD support not tested - if it works       *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* please report to bergo@seul.org. Good Luck.   *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    sleep 2
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/if.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					dnl AC_HEADER_CHECK(net/if_ppp.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/ppp_defs.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    SYSDEF="NETBSD"
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if test "$SYSDEF" = "UNKNOWN" ; then
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/if.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/if_ppp.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_HEADER_CHECK(net/ppp_defs.h,,AC_MSG_ERROR(required header file missing))
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* This system has not been tested. I will try   *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* compiling with BSDish settings. If it works   *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(* please report to bergo@seul.org. Good Luck!   *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*                                               *)
 | 
				
			||||||
 | 
					    AC_MSG_WARN(*************************************************)
 | 
				
			||||||
 | 
					    sleep 2
 | 
				
			||||||
 | 
					    SYSDEF="BSDISH"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_SUBST(SYSDEF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dnl now gtk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_PATH_PROG(GTKCONFIG,gtk-config,no)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if test "$GTKCONFIG" = "no" ; then
 | 
				
			||||||
 | 
					AC_MSG_ERROR(
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					-(GTK >= 1.2.1 NOT FOUND)---------------------------------------
 | 
				
			||||||
 | 
					 The config application requires the GTK libary. See the
 | 
				
			||||||
 | 
					 README for information on how to install GTK.
 | 
				
			||||||
 | 
					----------------------------------------------------------------
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					  dnl check for gtk-version
 | 
				
			||||||
 | 
					  GTK_LIBS=`$GTKCONFIG --libs`
 | 
				
			||||||
 | 
					  GTK_FLAGS=`$GTKCONFIG --cflags`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dnl test for Gtk+ >= 1.2.1
 | 
				
			||||||
 | 
					  AC_MSG_CHECKING(for gtk+ >=1.2.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dnl copied from gtk+'s aclocal.m4. These guys must love sed
 | 
				
			||||||
 | 
					  GTK_MAJOR=`$GTKCONFIG --version | \
 | 
				
			||||||
 | 
					           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
 | 
				
			||||||
 | 
					  GTK_MINOR=`$GTKCONFIG --version | \
 | 
				
			||||||
 | 
					           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
 | 
				
			||||||
 | 
					  GTK_MICRO=`$GTKCONFIG --version | \
 | 
				
			||||||
 | 
					           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  GTK121_FINE=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if test $GTK_MAJOR -lt 1 ; then
 | 
				
			||||||
 | 
					    GTK121_FINE=0
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    if test $GTK_MAJOR -eq 1 ; then
 | 
				
			||||||
 | 
					      if test $GTK_MINOR -lt 2 ; then
 | 
				
			||||||
 | 
						  GTK121_FINE=0
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					      if test $GTK_MINOR -eq 2 ; then
 | 
				
			||||||
 | 
						  if test $GTK_MICRO -lt 1 ; then
 | 
				
			||||||
 | 
						      GTK121_FINE=0
 | 
				
			||||||
 | 
					       	  fi
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    fi  
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if test "$GTK121_FINE" = "1" ; then
 | 
				
			||||||
 | 
					      AC_MSG_RESULT(yes)
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					      AC_MSG_RESULT(no)
 | 
				
			||||||
 | 
					      AC_MSG_ERROR(
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					-(GTK >= 1.2.1 NOT FOUND)---------------------------------------
 | 
				
			||||||
 | 
					 The config application requires the GTK libary. See the
 | 
				
			||||||
 | 
					 README for information on how to install GTK.
 | 
				
			||||||
 | 
					----------------------------------------------------------------
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_SUBST(GTK_LIBS)
 | 
				
			||||||
 | 
					AC_SUBST(GTK_FLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MK_YAWMPPP_RELEASE="2.0.2"
 | 
				
			||||||
 | 
					AC_SUBST(MK_YAWMPPP_RELEASE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AC_OUTPUT(Makefile src/Makefile src/dockapp/Makefile src/gtksetup/Makefile src/gtklog/Makefile src/thinppp/Makefile)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
 | 
					echo "--> type make to compile yawmppp"
 | 
				
			||||||
 | 
					echo
 | 
				
			||||||
							
								
								
									
										250
									
								
								yawmppp/install-sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										250
									
								
								yawmppp/install-sh
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,250 @@
 | 
				
			||||||
 | 
					#! /bin/sh
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# install - install a program, script, or datafile
 | 
				
			||||||
 | 
					# This comes from X11R5 (mit/util/scripts/install.sh).
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Copyright 1991 by the Massachusetts Institute of Technology
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Permission to use, copy, modify, distribute, and sell this software and its
 | 
				
			||||||
 | 
					# documentation for any purpose is hereby granted without fee, provided that
 | 
				
			||||||
 | 
					# the above copyright notice appear in all copies and that both that
 | 
				
			||||||
 | 
					# copyright notice and this permission notice appear in supporting
 | 
				
			||||||
 | 
					# documentation, and that the name of M.I.T. not be used in advertising or
 | 
				
			||||||
 | 
					# publicity pertaining to distribution of the software without specific,
 | 
				
			||||||
 | 
					# written prior permission.  M.I.T. makes no representations about the
 | 
				
			||||||
 | 
					# suitability of this software for any purpose.  It is provided "as is"
 | 
				
			||||||
 | 
					# without express or implied warranty.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 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.  It can only install one file at a time, a restriction
 | 
				
			||||||
 | 
					# shared with many OS's install programs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set DOITPROG to echo to test this script
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Don't use :- since 4.3BSD and earlier shells don't like it.
 | 
				
			||||||
 | 
					doit="${DOITPROG-}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# put in absolute paths if you don't have them in your path; or use env. vars.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mvprog="${MVPROG-mv}"
 | 
				
			||||||
 | 
					cpprog="${CPPROG-cp}"
 | 
				
			||||||
 | 
					chmodprog="${CHMODPROG-chmod}"
 | 
				
			||||||
 | 
					chownprog="${CHOWNPROG-chown}"
 | 
				
			||||||
 | 
					chgrpprog="${CHGRPPROG-chgrp}"
 | 
				
			||||||
 | 
					stripprog="${STRIPPROG-strip}"
 | 
				
			||||||
 | 
					rmprog="${RMPROG-rm}"
 | 
				
			||||||
 | 
					mkdirprog="${MKDIRPROG-mkdir}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					transformbasename=""
 | 
				
			||||||
 | 
					transform_arg=""
 | 
				
			||||||
 | 
					instcmd="$mvprog"
 | 
				
			||||||
 | 
					chmodcmd="$chmodprog 0755"
 | 
				
			||||||
 | 
					chowncmd=""
 | 
				
			||||||
 | 
					chgrpcmd=""
 | 
				
			||||||
 | 
					stripcmd=""
 | 
				
			||||||
 | 
					rmcmd="$rmprog -f"
 | 
				
			||||||
 | 
					mvcmd="$mvprog"
 | 
				
			||||||
 | 
					src=""
 | 
				
			||||||
 | 
					dst=""
 | 
				
			||||||
 | 
					dir_arg=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while [ x"$1" != x ]; do
 | 
				
			||||||
 | 
					    case $1 in
 | 
				
			||||||
 | 
						-c) instcmd="$cpprog"
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-d) dir_arg=true
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-m) chmodcmd="$chmodprog $2"
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-o) chowncmd="$chownprog $2"
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-g) chgrpcmd="$chgrpprog $2"
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-s) stripcmd="$stripprog"
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-t=*) transformarg=`echo $1 | sed 's/-t=//'`
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						*)  if [ x"$src" = x ]
 | 
				
			||||||
 | 
						    then
 | 
				
			||||||
 | 
							src=$1
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							# this colon is to work around a 386BSD /bin/sh bug
 | 
				
			||||||
 | 
							:
 | 
				
			||||||
 | 
							dst=$1
 | 
				
			||||||
 | 
						    fi
 | 
				
			||||||
 | 
						    shift
 | 
				
			||||||
 | 
						    continue;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ x"$src" = x ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
						echo "install:	no input file specified"
 | 
				
			||||||
 | 
						exit 1
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						true
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ x"$dir_arg" != x ]; then
 | 
				
			||||||
 | 
						dst=$src
 | 
				
			||||||
 | 
						src=""
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if [ -d $dst ]; then
 | 
				
			||||||
 | 
							instcmd=:
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							instcmd=mkdir
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
 | 
				
			||||||
 | 
					# might cause directories to be created, which would be especially bad 
 | 
				
			||||||
 | 
					# if $src (and thus $dsttmp) contains '*'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ -f $src -o -d $src ]
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							true
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							echo "install:  $src does not exist"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if [ x"$dst" = x ]
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							echo "install:	no destination specified"
 | 
				
			||||||
 | 
							exit 1
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							true
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If destination is a directory, append the input filename; if your system
 | 
				
			||||||
 | 
					# does not like double slashes in filenames, you may need to add some logic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ -d $dst ]
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							dst="$dst"/`basename $src`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							true
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## this sed command emulates the dirname command
 | 
				
			||||||
 | 
					dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make sure that the destination directory exists.
 | 
				
			||||||
 | 
					#  this part is taken from Noah Friedman's mkinstalldirs script
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Skip lots of stat calls in the usual case.
 | 
				
			||||||
 | 
					if [ ! -d "$dstdir" ]; then
 | 
				
			||||||
 | 
					defaultIFS='	
 | 
				
			||||||
 | 
					'
 | 
				
			||||||
 | 
					IFS="${IFS-${defaultIFS}}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					oIFS="${IFS}"
 | 
				
			||||||
 | 
					# Some sh's can't handle IFS=/ for some reason.
 | 
				
			||||||
 | 
					IFS='%'
 | 
				
			||||||
 | 
					set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
 | 
				
			||||||
 | 
					IFS="${oIFS}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pathcomp=''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while [ $# -ne 0 ] ; do
 | 
				
			||||||
 | 
						pathcomp="${pathcomp}${1}"
 | 
				
			||||||
 | 
						shift
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ ! -d "${pathcomp}" ] ;
 | 
				
			||||||
 | 
					        then
 | 
				
			||||||
 | 
							$mkdirprog "${pathcomp}"
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							true
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pathcomp="${pathcomp}/"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ x"$dir_arg" != x ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
						$doit $instcmd $dst &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
 | 
				
			||||||
 | 
						if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
 | 
				
			||||||
 | 
						if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
 | 
				
			||||||
 | 
						if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If we're going to rename the final executable, determine the name now.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ x"$transformarg" = x ] 
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							dstfile=`basename $dst`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							dstfile=`basename $dst $transformbasename | 
 | 
				
			||||||
 | 
								sed $transformarg`$transformbasename
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# don't allow the sed command to completely eliminate the filename
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ x"$dstfile" = x ] 
 | 
				
			||||||
 | 
						then
 | 
				
			||||||
 | 
							dstfile=`basename $dst`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							true
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make a temp file name in the proper directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dsttmp=$dstdir/#inst.$$#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Move or copy the file name to the temp name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$doit $instcmd $src $dsttmp &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						trap "rm -f ${dsttmp}" 0 &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 $instcmd $src $dsttmp" command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
 | 
				
			||||||
 | 
						if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
 | 
				
			||||||
 | 
						if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
 | 
				
			||||||
 | 
						if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Now rename the file to the real destination.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$doit $rmcmd -f $dstdir/$dstfile &&
 | 
				
			||||||
 | 
						$doit $mvcmd $dsttmp $dstdir/$dstfile 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fi &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit 0
 | 
				
			||||||
							
								
								
									
										71
									
								
								yawmppp/src/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								yawmppp/src/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					# yawmppp/src
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					CFLAGS = -O2 -Wall
 | 
				
			||||||
 | 
					OBJS = isprc.o ycommon.o misc.o list.o
 | 
				
			||||||
 | 
					RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\" -D@SYSDEF@
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					GTKLIB = @GTK_LIBS@
 | 
				
			||||||
 | 
					GTKFLAG = @GTK_FLAGS@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: isprc.o ycommon.o misc.o list.o about_obj \
 | 
				
			||||||
 | 
					     build_dockapp build_gtksetup build_gtklog \
 | 
				
			||||||
 | 
					     build_thinppp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(OBJS): %.o : %.c %.h
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) $(RLFLAG) -o $@ -c $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					about_obj: about.c about.h
 | 
				
			||||||
 | 
						$(CC) $(GTKFLAG) $(RLFLAG) -c about.c -o about.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_gtklog:
 | 
				
			||||||
 | 
						@$(MAKE) -C gtklog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_dockapp:
 | 
				
			||||||
 | 
						@$(MAKE) -C dockapp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_thinppp:
 | 
				
			||||||
 | 
						@$(MAKE) -C thinppp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_gtksetup:
 | 
				
			||||||
 | 
						@$(MAKE) -C gtksetup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/share/icons
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/man/man1
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/bin
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d /etc/ppp
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 stepphone.xpm @prefix@/share/icons/stepphone.xpm
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 yawmppp.1x @prefix@/man/man1/yawmppp.1x
 | 
				
			||||||
 | 
						@$(MAKE) -C dockapp  install
 | 
				
			||||||
 | 
						@$(MAKE) -C thinppp  install
 | 
				
			||||||
 | 
						@$(MAKE) -C gtksetup install
 | 
				
			||||||
 | 
						@$(MAKE) -C gtklog   install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/share/icons
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/bin
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d /etc/ppp
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 -d @prefix@/doc/yawmppp-@MK_YAWMPPP_RELEASE@
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 stepphone.xpm @prefix@/share/icons/stepphone.xpm
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 yawmppp.1x @prefix@/man/man1/yawmppp.1x
 | 
				
			||||||
 | 
						@$(MAKE) -C dockapp  install-strip
 | 
				
			||||||
 | 
						@$(MAKE) -C thinppp  install-strip
 | 
				
			||||||
 | 
						@$(MAKE) -C gtksetup install-strip
 | 
				
			||||||
 | 
						@$(MAKE) -C gtklog   install-strip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						@$(MAKE) -C dockapp  clean
 | 
				
			||||||
 | 
						@$(MAKE) -C thinppp  clean
 | 
				
			||||||
 | 
						@$(MAKE) -C gtksetup clean
 | 
				
			||||||
 | 
						@$(MAKE) -C gtklog   clean
 | 
				
			||||||
 | 
						rm -f $(OBJS) about.o *~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						@$(MAKE) -C dockapp  distclean
 | 
				
			||||||
 | 
						@$(MAKE) -C thinppp  distclean
 | 
				
			||||||
 | 
						@$(MAKE) -C gtksetup distclean
 | 
				
			||||||
 | 
						@$(MAKE) -C gtklog   distclean
 | 
				
			||||||
 | 
						rm -f Makefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										120
									
								
								yawmppp/src/about.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								yawmppp/src/about.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,120 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   YAWMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 2000, 2001:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Author: Felipe Bergo (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   $Id: about.c,v 1.1.1.1 2001/02/22 06:15:21 bergo Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					#include "about.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "stepphone.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GtkWidget *about;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* data must be a pointer to parent widget (GtkWindow) */
 | 
				
			||||||
 | 
					void applet_about (GtkWidget * widget, gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkStyle *style;
 | 
				
			||||||
 | 
					  GdkPixmap *phone;
 | 
				
			||||||
 | 
					  GtkWidget *pi,*v,*h,*text,*h2,*b,*p,*v2;
 | 
				
			||||||
 | 
					  char tabout[1024];
 | 
				
			||||||
 | 
					  GdkBitmap *mask;
 | 
				
			||||||
 | 
					  int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  about=gtk_window_new(GTK_WINDOW_DIALOG);
 | 
				
			||||||
 | 
					  gtk_window_set_transient_for(GTK_WINDOW(about),GTK_WINDOW(data));
 | 
				
			||||||
 | 
					  gtk_window_set_wmclass(GTK_WINDOW(about),"yawmppp","about");
 | 
				
			||||||
 | 
					  gtk_widget_realize(about);
 | 
				
			||||||
 | 
					  gtk_window_set_policy(GTK_WINDOW(about),TRUE,TRUE,TRUE);
 | 
				
			||||||
 | 
					  gtk_window_set_title (GTK_WINDOW (about), "About YAWMPPP");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  style=gtk_widget_get_style(about);
 | 
				
			||||||
 | 
					  phone=gdk_pixmap_create_from_xpm_d(about->window,&mask,
 | 
				
			||||||
 | 
									    &style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
									    (gchar **)stepphone_xpm);
 | 
				
			||||||
 | 
					  pi=gtk_pixmap_new(phone,mask);
 | 
				
			||||||
 | 
					  gdk_pixmap_unref(phone);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  v=gtk_vbox_new(FALSE,2);
 | 
				
			||||||
 | 
					  gtk_container_add(GTK_CONTAINER(about),v);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  h=gtk_hbox_new(FALSE,2);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(v),h,FALSE,TRUE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  v2=gtk_vbox_new(FALSE,4);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(h),v2,FALSE,FALSE,2);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(v2),pi,FALSE,FALSE,6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strcpy(tabout,"YAWMPPP\nYet Another PPP Dock Applet for Window Maker\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"Version ");
 | 
				
			||||||
 | 
					  strcat(tabout,VERSION);
 | 
				
			||||||
 | 
					  strcat(tabout,"\nCopyright (C) 2000, 2001 Felipe Bergo\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"email: bergo@seul.org\n\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strcat(tabout,"YAWMPPP is distributed under the terms of the GNU\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"General Public License, version 2 or later.\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"YAWMPPP comes with ABSOLUTELY NO WARRANTY;\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"This is free software, and you are welcome to\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"redistribute it under certain conditions.\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"Read the file COPYING for details.\n\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"To learn more about free software visit\n");
 | 
				
			||||||
 | 
					  strcat(tabout,"http://www.gnu.org\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  text=gtk_label_new(tabout);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(h),text,FALSE,TRUE,2);
 | 
				
			||||||
 | 
					  gtk_label_set_justify(GTK_LABEL(text),GTK_JUSTIFY_LEFT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  h2=gtk_hbox_new(TRUE,2);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(v),h2,FALSE,TRUE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<3;i++) {
 | 
				
			||||||
 | 
					    p=gtk_label_new(" ");
 | 
				
			||||||
 | 
					    gtk_box_pack_start(GTK_BOX(h2),p,FALSE,FALSE,2);
 | 
				
			||||||
 | 
					    gtk_widget_show(p);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  b=gtk_button_new_with_label("Dismiss");
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(h2),b,FALSE,TRUE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_container_set_border_width(GTK_CONTAINER(about),6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_widget_show(b);
 | 
				
			||||||
 | 
					  gtk_widget_show(text);
 | 
				
			||||||
 | 
					  gtk_widget_show(pi);
 | 
				
			||||||
 | 
					  gtk_widget_show(h2);
 | 
				
			||||||
 | 
					  gtk_widget_show(h);
 | 
				
			||||||
 | 
					  gtk_widget_show(v2);
 | 
				
			||||||
 | 
					  gtk_widget_show(v);
 | 
				
			||||||
 | 
					  gtk_widget_show(about);
 | 
				
			||||||
 | 
					  gtk_signal_connect(GTK_OBJECT(b),"clicked",
 | 
				
			||||||
 | 
							     GTK_SIGNAL_FUNC(about_dismiss),NULL);
 | 
				
			||||||
 | 
					  gtk_grab_add(about);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					about_dismiss(GtkWidget *wid,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  gtk_grab_remove(about);
 | 
				
			||||||
 | 
					  gtk_widget_destroy(about);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								yawmppp/src/about.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								yawmppp/src/about.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef ABOUT_H
 | 
				
			||||||
 | 
					#define ABOUT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void about_dismiss(GtkWidget *wid,gpointer data);
 | 
				
			||||||
 | 
					void applet_about (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										35
									
								
								yawmppp/src/dockapp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								yawmppp/src/dockapp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					LIBDIR = -L/usr/X11R6/lib -L@XLIB@
 | 
				
			||||||
 | 
					LIBS   = -lXpm -lXext -lX11
 | 
				
			||||||
 | 
					CFLAGS = -O2 -Wall -I.. -I@XINC@
 | 
				
			||||||
 | 
					RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\" -D@SYSDEF@
 | 
				
			||||||
 | 
					OBJS  = yawmppp.o wmgeneral.o
 | 
				
			||||||
 | 
					DOTHS = yawmppp.h wmgeneral.h ../misc.h ../list.h ../isprc.h ../ycommon.h
 | 
				
			||||||
 | 
					EOBJS = ../isprc.o ../ycommon.o ../misc.o ../list.o
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					PIXMAPS = dockxpm.xpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: yawmppp_bin getmodemspeed_bin 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(OBJS): %.o : %.c $(DOTHS) $(PIXMAPS)
 | 
				
			||||||
 | 
						$(CC) -c $(CFLAGS) $(RLFLAG) $< -o $*.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					yawmppp_bin: $(OBJS) 
 | 
				
			||||||
 | 
						$(CC) -o yawmppp $^ $(EOBJS) -lXext $(LIBDIR) $(LIBS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getmodemspeed_bin: getmodemspeed.c
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) getmodemspeed.c -o yagetmodemspeed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm -f $(OBJS) yawmppp yagetmodemspeed 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						rm -f Makefile *~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 yawmppp @prefix@/bin/yawmppp
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 yagetmodemspeed /etc/ppp/yagetmodemspeed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						$(PROGINST) -s -m 0755 yawmppp @prefix@/bin/yawmppp
 | 
				
			||||||
 | 
						$(PROGINST) -s -m 0755 yagetmodemspeed /etc/ppp/yagetmodemspeed
 | 
				
			||||||
							
								
								
									
										228
									
								
								yawmppp/src/dockapp/dockxpm.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								yawmppp/src/dockapp/dockxpm.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,228 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * dockxpm_xpm[] = {
 | 
				
			||||||
 | 
					"64 192 33 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #202020",
 | 
				
			||||||
 | 
					"@	c #C7C3C7",
 | 
				
			||||||
 | 
					"#	c #283C38",
 | 
				
			||||||
 | 
					"$	c #F7F3FF",
 | 
				
			||||||
 | 
					"%	c #86828E",
 | 
				
			||||||
 | 
					"&	c #AEAAAE",
 | 
				
			||||||
 | 
					"*	c #139613",
 | 
				
			||||||
 | 
					"=	c #0FAA0F",
 | 
				
			||||||
 | 
					"-	c #0ABD0A",
 | 
				
			||||||
 | 
					";	c #06CE06",
 | 
				
			||||||
 | 
					">	c #04D604",
 | 
				
			||||||
 | 
					",	c #07CA07",
 | 
				
			||||||
 | 
					"'	c #0EAD0E",
 | 
				
			||||||
 | 
					")	c #09C109",
 | 
				
			||||||
 | 
					"!	c #00EA00",
 | 
				
			||||||
 | 
					"~	c #0ABC0A",
 | 
				
			||||||
 | 
					"{	c #05D305",
 | 
				
			||||||
 | 
					"]	c #11A111",
 | 
				
			||||||
 | 
					"^	c #0CB70C",
 | 
				
			||||||
 | 
					"/	c #188318",
 | 
				
			||||||
 | 
					"(	c #139713",
 | 
				
			||||||
 | 
					"_	c #0FA90F",
 | 
				
			||||||
 | 
					":	c #B60418",
 | 
				
			||||||
 | 
					"<	c #00EB00",
 | 
				
			||||||
 | 
					"[	c #E7C308",
 | 
				
			||||||
 | 
					"}	c #71E371",
 | 
				
			||||||
 | 
					"|	c #35C26D",
 | 
				
			||||||
 | 
					"1	c #0F9846",
 | 
				
			||||||
 | 
					"2	c #49C349",
 | 
				
			||||||
 | 
					"3	c #1ADF69",
 | 
				
			||||||
 | 
					"4	c #10773A",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"    ........................................................    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .+++###+++###+++++++###+++###++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .++#+++#+#+++#++#++#+++#+#+++#+++#######+++#+++++##++++@    ",
 | 
				
			||||||
 | 
					"    .++#+++#+#+++#++#++#+++#+#+++#++++#####+++###+++####+++@    ",
 | 
				
			||||||
 | 
					"    .+++###+++###+++++++###+++###++++++###+++#####++####+++@    ",
 | 
				
			||||||
 | 
					"    .++#+++#+#+++#+++++#+++#+#+++#++++++#+++#######++##++++@    ",
 | 
				
			||||||
 | 
					"    .++#+++#+#+++#++#++#+++#+#+++#+++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .+++###+++###+++#+++###+++###++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .######################################################@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .+####+####+####+####+####++++####+####+####++++++####+@    ",
 | 
				
			||||||
 | 
					"    .+#++#+#++#+#++#+#++#+#++#++++#++#+#++#+#++#++++++#++#+@    ",
 | 
				
			||||||
 | 
					"    .+#++#+#++#+#++#+#++#+#++#++++#++#+#++#+#++#+#++#+#++#+@    ",
 | 
				
			||||||
 | 
					"    .+####+####+####+####+####++++####+####+####+#+#++####+@    ",
 | 
				
			||||||
 | 
					"    .+#++#+#++#+#++#+#++#+#++#++++#++#+#++#+#++#+##+++#++#+@    ",
 | 
				
			||||||
 | 
					"    .+#++#+#++#+#++#+#++#+#++#++++#++#+#++#+#++#+#+#++#++#+@    ",
 | 
				
			||||||
 | 
					"    .+####+####+####+####+####++++####+####+####+#++#+####+@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    .++++++++++++++++++++++++++++++++++++++++++++++++++++++@    ",
 | 
				
			||||||
 | 
					"    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"    ..........................    ..........................    ",
 | 
				
			||||||
 | 
					"    .$$$$$$$$$$$%$$$$$$$$$$$%@    .$$$$$$$$$$$%$$$$$$$$$$$%@    ",
 | 
				
			||||||
 | 
					"    .$&&&&&&&&&&.$&&&&&&&&&&.@    .$&&&&&&&&&&.$&&&&&&&&&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&&&.&&&&.$&&&&.&&&&&.@    .$&&&&&&..&&.$&..&&&..&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&&..&&&&.$&&&&..&&&&.@    .$&&&&&...&&.$&...&...&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&...&&&&.$&&&&...&&&.@    .$&..&...&&&.$&&.....&&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&....&&&&.$&&&&....&&.@    .$&.....&&&&.$&&&...&&&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&...&&&&.$&&&&...&&&.@    .$&....&&&&&.$&&.....&&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&&..&&&&.$&&&&..&&&&.@    .$&...&&&&&&.$&...&...&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&&&.&&&&.$&&&&.&&&&&.@    .$&..&&&&&&&.$&..&&&..&&.@    ",
 | 
				
			||||||
 | 
					"    .$&&&&&&&&&&.$&&&&&&&&&&.@    .$&&&&&&&&&&.$&&&&&&&&&&.@    ",
 | 
				
			||||||
 | 
					"    .%...........%...........@    .%...........%...........@    ",
 | 
				
			||||||
 | 
					"    @@@@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@@@@@@@@@@@@@@@@@@@@    ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"...........%...........%$$$$$$$$$$$%$$$$$$$$$$$%  #######+++#+++",
 | 
				
			||||||
 | 
					".&&&&&&&&&&$.&&&&&&&&&&$$&&&&&&&&&&.$&&&&&&&&&&.  +#####+++###++",
 | 
				
			||||||
 | 
					".&&&&&&..&&$.&..&&&..&&$$&&&&&&..&&.$&..&&&..&&.  ++###+++#####+",
 | 
				
			||||||
 | 
					".&&&&&...&&$.&...&...&&$$&&&&&...&&.$&...&...&&.  +++#+++#######",
 | 
				
			||||||
 | 
					".&..&...&&&$.&&.....&&&$$&..&...&&&.$&&.....&&&.                ",
 | 
				
			||||||
 | 
					".&.....&&&&$.&&&...&&&&$$&.....&&&&.$&&&...&&&&.  *=-;>;-+++,+++",
 | 
				
			||||||
 | 
					".&....&&&&&$.&&.....&&&$$&....&&&&&.$&&.....&&&.  +')>!>+++~{!++",
 | 
				
			||||||
 | 
					".&...&&&&&&$.&...&...&&$$&...&&&&&&.$&...&...&&.  ++-;>+++]^,{,+",
 | 
				
			||||||
 | 
					".&..&&&&&&&$.&..&&&..&&$$&..&&&&&&&.$&..&&&..&&.  +++-+++/(_^~^_",
 | 
				
			||||||
 | 
					".&&&&&&&&&&$.&&&&&&&&&&$$&&&&&&&&&&.$&&&&&&&&&&.                ",
 | 
				
			||||||
 | 
					"%$$$$$$$$$$$%$$$$$$$$$$$%...........%...........                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"...........%...........%$$$$$$$$$$$%$$$$$$$$$$$%   +##+  +::+   ",
 | 
				
			||||||
 | 
					".&&&&&&&&&&$.&&&&&&&&&&$$&&&&&&&&&&.$&&&&&&&&&&.   ####  :$::   ",
 | 
				
			||||||
 | 
					".&&&&&.&&&&$.&&&&.&&&&&$$&&&&&.&&&&.$&&&&.&&&&&.   ####  ::::   ",
 | 
				
			||||||
 | 
					".&&&&..&&&&$.&&&&..&&&&$$&&&&..&&&&.$&&&&..&&&&.   +##+  +::+   ",
 | 
				
			||||||
 | 
					".&&&...&&&&$.&&&&...&&&$$&&&...&&&&.$&&&&...&&&.                ",
 | 
				
			||||||
 | 
					".&&....&&&&$.&&&&....&&$$&&....&&&&.$&&&&....&&.   +<<+  +[[+   ",
 | 
				
			||||||
 | 
					".&&&...&&&&$.&&&&...&&&$$&&&...&&&&.$&&&&...&&&.   <$<<  [$[[   ",
 | 
				
			||||||
 | 
					".&&&&..&&&&$.&&&&..&&&&$$&&&&..&&&&.$&&&&..&&&&.   <<<<  [[[[   ",
 | 
				
			||||||
 | 
					".&&&&&.&&&&$.&&&&.&&&&&$$&&&&&.&&&&.$&&&&.&&&&&.   +<<+  +[[+   ",
 | 
				
			||||||
 | 
					".&&&&&&&&&&$.&&&&&&&&&&$$&&&&&&&&&&.$&&&&&&&&&&.                ",
 | 
				
			||||||
 | 
					"%$$$$$$$$$$$%$$$$$$$$$$$%...........%...........         }#|1}  ",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"###2+2}}2+2}}2+2##2+2}}2+2}}2+2}}2+2}}2+2}}2+2}}2+####+####+####",
 | 
				
			||||||
 | 
					"#++}+#++}+#++}+}++}+}++#+}++#+#++}+}++}+}++}+}++}+#++#+#++#+#++#",
 | 
				
			||||||
 | 
					"#++}+#++}+#++}+}++}+}++#+}++#+#++}+}++}+}++}+}++}+}++}+}++}+#++#",
 | 
				
			||||||
 | 
					"###2+2}}2+2}}2+2}}2+2}}2+2}}2+###2+2}}2+2}}2+2##2+}#}#+}}}}+####",
 | 
				
			||||||
 | 
					"#++}+}++#+#++}+#++}+#++}+}++}+#++}+}++}+#++}+}++}+}}+#+}++}+#++#",
 | 
				
			||||||
 | 
					"#++}+}++#+#++}+#++}+#++}+}++}+#++}+}++}+#++}+}++}+}+}#+}++}+#++#",
 | 
				
			||||||
 | 
					"###}+2}}2+2}}2+###2+2}}2+2}}2+###2+2}}2+2}}2+2}}2+}##}+}##}+####",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"2}}2+2}}2+2}}2+2}}2+2}}2++++####+####+####++++++####++++++++++++",
 | 
				
			||||||
 | 
					"}++#+}++}+}++}+}++}+}++}++++#++#+#++#+#++#++++++#++#++++++++++++",
 | 
				
			||||||
 | 
					"}++#+}++}+}++}+}++}+}++}++++#++#+#++#+#++#+#++#+#++#++++++++++++",
 | 
				
			||||||
 | 
					"2}}#+2}}++2}}++2##2+2}}+++++####+####+####+#+#++####++++++++++++",
 | 
				
			||||||
 | 
					"}++#+}++}+}++}+}++}+}++}++++#++#+#++#+#++#+##+++#++#++++++++++++",
 | 
				
			||||||
 | 
					"}++#+}++}+}++}+}++}+}++}++++#++#+#++#+#++#+#+#++#++#++++++++++++",
 | 
				
			||||||
 | 
					"2}}2+2##2+2##2+2}}2+2##2++++####+####+####+#++#+####++++++++++++",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++###+++###+++++++###+++###+++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"+#+++#+#+++#++#++#+++#+#+++#++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"+#+++#+#+++#++#++#+++#+#+++#++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++###+++###+++++++###+++###+++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"+#+++#+#+++#+++++#+++#+#+++#++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"+#+++#+#+++#++#++#+++#+#+++#++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++###+++###+++#+++###+++###+++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+#}}#+}}}#+#}}#+}}}#+}}}}+}}}}+#}}#+}##}+#}##+###}+}##}+}###+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++}+}++#+}++#+}++#+}++}+#}+#+#++}+}++}+}++#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++#+}++}+}++#+}++#+}++#+}++}+#}+#+#++}+}+}#+}++#+   ",
 | 
				
			||||||
 | 
					"+}}}}+}}}#+}###+}##}+}}}#+}}}#+}#}}+}}}}+#}##+###}+}}##+}###+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++#+}++}+}++#+}++#+}++}+}++}+#}+#+#++}+}+}#+}++#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++}+}++#+}++#+}++}+}++}+#}+#+}++}+}++}+}++#+   ",
 | 
				
			||||||
 | 
					"+}##}+}}}#+#}}#+}}}#+}}}}+}###+#}}#+}##}+#}##+#}}#+}##}+}}}}+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+}##}+}##}+#}}#+}}}#+#}}#+}}}#+#}}#+#}}}+}##}+}##}+}##}+}##}+   ",
 | 
				
			||||||
 | 
					"+}}}}+}}+}+}++}+}++}+}++}+}++}+}++}+#+}#+}++}+}++}+}++}+}++}+   ",
 | 
				
			||||||
 | 
					"+}++}+}+}}+}++}+}++}+}++}+}++}+}++#+#+}#+}++}+}++}+}++}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}##}+}##}+}##}+}}}#+}##}+}}}#+#}}#+##}#+}##}+}##}+}##}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++#+}++}+}+}#+#++}+#+}#+}++}+}++}+}}}}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++#+}+}#+}++}+}++}+#+}#+}++}+#}}#+}}}}+}++}+   ",
 | 
				
			||||||
 | 
					"+}##}+}##}+#}}#+}###+#}#}+}##}+#}}#+##}#+}}}}+#}}#+}##}+}##}+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+}##}+}}}}+####+####+####+####+####+####+####+####+####+####+   ",
 | 
				
			||||||
 | 
					"+}#+}+#++}+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+   ",
 | 
				
			||||||
 | 
					"+}##}+#+}#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+   ",
 | 
				
			||||||
 | 
					"+#}}#+#}##+####+####+####+####+####+####+####+####+####+####+   ",
 | 
				
			||||||
 | 
					"+#+}#+#}+#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+   ",
 | 
				
			||||||
 | 
					"+#+}#+}++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+#++#+   ",
 | 
				
			||||||
 | 
					"+#}##+}}}}+####+####+####+####+####+####+####+####+####+####+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+#}}#+}###+####+###}+}}}}+#}}#+#}}#+}###+####+###}+####+}###+   ",
 | 
				
			||||||
 | 
					"+}++}+}++#+#++#+#++}+}++#+}++}+}++#+}++#+#}+#+#++}+}++}+}++#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++#+#}}#+#++}+}++#+}++#+}++#+}++#+##+#+#++}+}+}#+}++#+   ",
 | 
				
			||||||
 | 
					"+}}}}+}}}#+}##}+#}}}+}}}#+}}##+}#}}+}}}#+#}##+###}+}}##+}###+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++#+}++}+}++#+}++#+}++}+}++}+#}+#+#++}+}+}#+}++#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++}+}++#+}++#+}++}+}++}+#}+#+}++}+}++}+}++#+   ",
 | 
				
			||||||
 | 
					"+}##}+}}}#+#}}#+#}}}+}}}}+}###+#}}#+}##}+#}##+#}}#+}##}+#}}#+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+}##}+####+####+}}}#+#}}#+####+#}}#+####+####+}##}+}##}+}##}+   ",
 | 
				
			||||||
 | 
					"+}}}}+##+#+#++#+}++}+}++}+#++#+}++}+#+}#+#++#+}++}+}++}+}++}+   ",
 | 
				
			||||||
 | 
					"+}++}+#+##+#++#+}++}+}++}+#++#+}++#+#+}#+#++#+}++}+}++}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}##}+}#}}+#}}#+}}}#+}##}+}#}#+#}}#+#}}}+}##}+}##}+}##}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}++}+}}+}+}++}+}++#+}++}+}}#}+#++}+#+}#+}++}+}++}+}}}}+#}}#+   ",
 | 
				
			||||||
 | 
					"+}++}+}++}+}++}+}++#+}+}#+}++#+}++}+#+}#+}++}+#}}#+}}}}+}++}+   ",
 | 
				
			||||||
 | 
					"+}##}+}##}+#}}#+}###+#}#}+}###+#}}#+##}#+#}}#+#}}#+}##}+}##}+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+}##}+####+2}}2+###2+2}}2+2}}2+2##2+2}}2+2}}2+2}}2+2}}2+2}}2+   ",
 | 
				
			||||||
 | 
					"+}#+}+#++#+}++}+#+}}+#++}+#++}+}++}+}++#+}++#+#++}+}++}+}++}+   ",
 | 
				
			||||||
 | 
					"+}##}+}}}}+}++}+#++}+#++}+#++}+}++}+}++#+}++#+#++}+}++}+}++}+   ",
 | 
				
			||||||
 | 
					"+#}}#+###}+2##2+###2+2}}2+2}}2+2}}2+2}}2+2}}2+###2+2}}2+2}}2+   ",
 | 
				
			||||||
 | 
					"+#+}#+#}}#+}++}+#++}+}++#+#++}+#++}+#++}+}++}+#++}+}++}+#++}+   ",
 | 
				
			||||||
 | 
					"+#+}#+}++#+}++}+#++}+}++#+#++}+#++}+#++}+}++}+#++}+}++}+#++}+   ",
 | 
				
			||||||
 | 
					"+#}##+}}}}+2}}2+###}+2}}2+2}}2+###2+2}}2+2}}2+###2+2}}2+2}}2+   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"++333+++###4+43334+43334+4###4+43334+43334+43334+43334+43334++++",
 | 
				
			||||||
 | 
					"+3+++3+#+++3+#+++3+#+++3+3+++3+3+++#+3+++#+#+++3+3+++3+3+++3++3+",
 | 
				
			||||||
 | 
					"+3+++3+#+++3+#+++3+#+++3+3+++3+3+++#+3+++#+#+++3+3+++3+3+++3++4+",
 | 
				
			||||||
 | 
					"+4###4++###4+43334++3334+43334+43334+43334++###4+43334+43334++++",
 | 
				
			||||||
 | 
					"+3+++3+#+++3+3+++#+#+++3+#+++3+#+++3+3+++3+#+++3+3+++3+#+++3++++",
 | 
				
			||||||
 | 
					"+3+++3+#+++3+3+++#+#+++3+#+++3+#+++3+3+++3+#+++3+3+++3+#+++3++3+",
 | 
				
			||||||
 | 
					"++333+++###4+43334+43334++###4+43334+43334++###4+43334+43334++4+",
 | 
				
			||||||
 | 
					"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										17
									
								
								yawmppp/src/dockapp/getmodemspeed.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								yawmppp/src/dockapp/getmodemspeed.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(void) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						FILE	*fd;
 | 
				
			||||||
 | 
						char	temp[256];
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						fd = popen("tac /etc/ppp/connect-errors | grep '['CONNECT'|'CARRIER']' | head -1", "r");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (fgets(temp, 256, fd)) {
 | 
				
			||||||
 | 
							printf("%s", temp);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						pclose(fd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										369
									
								
								yawmppp/src/dockapp/wmgeneral.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										369
									
								
								yawmppp/src/dockapp/wmgeneral.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,369 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   WMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 1997-2000:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Authors: Martijn Pieterse (pieterse@xs4all.nl)
 | 
				
			||||||
 | 
					            Antoine Nulle    (warp@xs4all.nl)
 | 
				
			||||||
 | 
					            Felipe Bergo     (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <X11/Xlib.h>
 | 
				
			||||||
 | 
					#include <X11/xpm.h>
 | 
				
			||||||
 | 
					#include <X11/extensions/shape.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "wmgeneral.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Window Root;
 | 
				
			||||||
 | 
					int screen;
 | 
				
			||||||
 | 
					int x_fd;
 | 
				
			||||||
 | 
					int d_depth;
 | 
				
			||||||
 | 
					XSizeHints mysizehints;
 | 
				
			||||||
 | 
					XWMHints mywmhints;
 | 
				
			||||||
 | 
					Pixel back_pix, fore_pix;
 | 
				
			||||||
 | 
					char *Geometry = "";
 | 
				
			||||||
 | 
					Window iconwin, win;
 | 
				
			||||||
 | 
					GC NormalGC;
 | 
				
			||||||
 | 
					XpmIcon wmgen;
 | 
				
			||||||
 | 
					Pixmap pixmask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					      int enable;
 | 
				
			||||||
 | 
					      int top;
 | 
				
			||||||
 | 
					      int bottom;
 | 
				
			||||||
 | 
					      int left;
 | 
				
			||||||
 | 
					      int right;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					MOUSE_REGION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MOUSE_REGION mouse_region[MAX_MOUSE_REGION];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void GetXPM (XpmIcon *, char **);
 | 
				
			||||||
 | 
					static Pixel GetColor (char *);
 | 
				
			||||||
 | 
					void RedrawWindow (void);
 | 
				
			||||||
 | 
					void AddMouseRegion (int, int, int, int, int);
 | 
				
			||||||
 | 
					int CheckMouseRegion (int, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void 
 | 
				
			||||||
 | 
					GetXPM (XpmIcon * wmgen, char *pixmap_bytes[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XWindowAttributes attributes;
 | 
				
			||||||
 | 
					    int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* For the colormap */
 | 
				
			||||||
 | 
					    XGetWindowAttributes (display, Root, &attributes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wmgen->attributes.valuemask |= (XpmReturnPixels | XpmReturnExtensions);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    err = XpmCreatePixmapFromData (display, Root, pixmap_bytes, &(wmgen->pixmap),
 | 
				
			||||||
 | 
									   &(wmgen->mask), &(wmgen->attributes));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (err != XpmSuccess)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  fprintf (stderr, "Not enough free colorcells.\n");
 | 
				
			||||||
 | 
						  exit (1);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static Pixel 
 | 
				
			||||||
 | 
					GetColor (char *name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XColor color;
 | 
				
			||||||
 | 
					    XWindowAttributes attributes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XGetWindowAttributes (display, Root, &attributes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    color.pixel = 0;
 | 
				
			||||||
 | 
					    if (!XParseColor (display, attributes.colormap, name, &color))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  fprintf (stderr, "wm.app: can't parse %s.\n", name);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    else if (!XAllocColor (display, attributes.colormap, &color))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  fprintf (stderr, "wm.app: can't allocate %s.\n", name);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    return color.pixel;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int 
 | 
				
			||||||
 | 
					flush_expose (Window w)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XEvent dummy;
 | 
				
			||||||
 | 
					    int i = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while (XCheckTypedWindowEvent (display, w, Expose, &dummy))
 | 
				
			||||||
 | 
						i++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return i;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					RedrawWindow (void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    flush_expose (iconwin);
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.pixmap, iconwin, NormalGC,
 | 
				
			||||||
 | 
						       0, 0, wmgen.attributes.width, wmgen.attributes.height, 0, 0);
 | 
				
			||||||
 | 
					    flush_expose (win);
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.pixmap, win, NormalGC,
 | 
				
			||||||
 | 
						       0, 0, wmgen.attributes.width, wmgen.attributes.height, 0, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					RedrawWindowXY (int x, int y)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    flush_expose (iconwin);
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.pixmap, iconwin, NormalGC,
 | 
				
			||||||
 | 
						       x, y, wmgen.attributes.width, wmgen.attributes.height, 0, 0);
 | 
				
			||||||
 | 
					    flush_expose (win);
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.pixmap, win, NormalGC,
 | 
				
			||||||
 | 
						       x, y, wmgen.attributes.width, wmgen.attributes.height, 0, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					AddMouseRegion (int index, int left, int top, int right, int bottom)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (index < MAX_MOUSE_REGION)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  mouse_region[index].enable = 1;
 | 
				
			||||||
 | 
						  mouse_region[index].top = top;
 | 
				
			||||||
 | 
						  mouse_region[index].left = left;
 | 
				
			||||||
 | 
						  mouse_region[index].bottom = bottom;
 | 
				
			||||||
 | 
						  mouse_region[index].right = right;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int 
 | 
				
			||||||
 | 
					CheckMouseRegion (int x, int y)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int i;
 | 
				
			||||||
 | 
					    int found;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    found = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 0; i < MAX_MOUSE_REGION && !found; i++)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  if (mouse_region[i].enable &&
 | 
				
			||||||
 | 
						      x <= mouse_region[i].right &&
 | 
				
			||||||
 | 
						      x >= mouse_region[i].left &&
 | 
				
			||||||
 | 
						      y <= mouse_region[i].bottom &&
 | 
				
			||||||
 | 
						      y >= mouse_region[i].top)
 | 
				
			||||||
 | 
						      found = 1;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    if (!found)
 | 
				
			||||||
 | 
						return -1;
 | 
				
			||||||
 | 
					    return (i - 1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					createXBMfromXPM (char *xbm, char **xpm, int sx, int sy)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int i, j;
 | 
				
			||||||
 | 
					    int width, height, numcol;
 | 
				
			||||||
 | 
					    char zero;
 | 
				
			||||||
 | 
					    unsigned char bwrite;
 | 
				
			||||||
 | 
					    int bcount;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sscanf (*xpm, "%d %d %d", &width, &height, &numcol);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    zero = xpm[1][0];
 | 
				
			||||||
 | 
					    for (i = numcol + 1; i < numcol + sy + 1; i++)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  bcount = 0;
 | 
				
			||||||
 | 
						  bwrite = 0;
 | 
				
			||||||
 | 
						  for (j = 0; j < sx; j++)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							bwrite >>= 1;
 | 
				
			||||||
 | 
							if (xpm[i][j] != zero)
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      bwrite += 128;
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
							bcount++;
 | 
				
			||||||
 | 
							if (bcount == 8)
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      *xbm = bwrite;
 | 
				
			||||||
 | 
							      xbm++;
 | 
				
			||||||
 | 
							      bcount = 0;
 | 
				
			||||||
 | 
							      bwrite = 0;
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					copyXPMArea (int x, int y, int sx, int sy, int dx, int dy)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.pixmap, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					copyXBMArea (int x, int y, int sx, int sy, int dx, int dy)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XCopyArea (display, wmgen.mask, wmgen.pixmap, NormalGC, x, y, sx, sy, dx, dy);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					setMaskXY (int x, int y)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XShapeCombineMask (display, win, ShapeBounding, x, y, pixmask, ShapeSet);
 | 
				
			||||||
 | 
					    XShapeCombineMask (display, iconwin, ShapeBounding, x, y, pixmask, ShapeSet);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void 
 | 
				
			||||||
 | 
					openXwindow (int argc, char *argv[], char *pixmap_bytes[], char *pixmask_bits, int pixmask_width, int pixmask_height)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    unsigned int borderwidth = 1;
 | 
				
			||||||
 | 
					    XClassHint classHint;
 | 
				
			||||||
 | 
					    char *display_name = NULL;
 | 
				
			||||||
 | 
					    char *wname = argv[0];
 | 
				
			||||||
 | 
					    XTextProperty name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XGCValues gcv;
 | 
				
			||||||
 | 
					    unsigned long gcm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    char *geometry = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int dummy = 0;
 | 
				
			||||||
 | 
					    int i, wx, wy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 1; argv[i]; i++)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  if (!strcmp (argv[i], "-display"))
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							display_name = argv[i + 1];
 | 
				
			||||||
 | 
							i++;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  if (!strcmp (argv[i], "-geometry"))
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							geometry = argv[i + 1];
 | 
				
			||||||
 | 
							i++;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!(display = XOpenDisplay (display_name)))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  fprintf (stderr, "%s: can't open display %s\n",
 | 
				
			||||||
 | 
							   wname, XDisplayName (display_name));
 | 
				
			||||||
 | 
						  exit (1);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    screen = DefaultScreen (display);
 | 
				
			||||||
 | 
					    Root = RootWindow (display, screen);
 | 
				
			||||||
 | 
					    d_depth = DefaultDepth (display, screen);
 | 
				
			||||||
 | 
					    x_fd = XConnectionNumber (display);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Convert XPM to XImage */
 | 
				
			||||||
 | 
					    GetXPM (&wmgen, pixmap_bytes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Create a window to hold the stuff */
 | 
				
			||||||
 | 
					    mysizehints.flags = USSize | USPosition;
 | 
				
			||||||
 | 
					    mysizehints.x = 0;
 | 
				
			||||||
 | 
					    mysizehints.y = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    back_pix = GetColor ("white");
 | 
				
			||||||
 | 
					    fore_pix = GetColor ("black");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XWMGeometry (display, screen, Geometry, NULL, borderwidth, &mysizehints,
 | 
				
			||||||
 | 
							 &mysizehints.x, &mysizehints.y, &mysizehints.width, &mysizehints.height, &dummy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mysizehints.width = 64;
 | 
				
			||||||
 | 
					    mysizehints.height = 64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    win = XCreateSimpleWindow (display, Root, mysizehints.x, mysizehints.y,
 | 
				
			||||||
 | 
					    mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    iconwin = XCreateSimpleWindow (display, win, mysizehints.x, mysizehints.y,
 | 
				
			||||||
 | 
					    mysizehints.width, mysizehints.height, borderwidth, fore_pix, back_pix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Activate hints */
 | 
				
			||||||
 | 
					    XSetWMNormalHints (display, win, &mysizehints);
 | 
				
			||||||
 | 
					    classHint.res_name = wname;
 | 
				
			||||||
 | 
					    classHint.res_class = wname;
 | 
				
			||||||
 | 
					    XSetClassHint (display, win, &classHint);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XSelectInput (display, win, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
 | 
				
			||||||
 | 
					    XSelectInput (display, iconwin, ButtonPressMask | ExposureMask | ButtonReleaseMask | PointerMotionMask | StructureNotifyMask);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (XStringListToTextProperty (&wname, 1, &name) == 0)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  fprintf (stderr, "%s: can't allocate window name\n", wname);
 | 
				
			||||||
 | 
						  exit (1);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XSetWMName (display, win, &name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Create GC for drawing */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gcm = GCForeground | GCBackground | GCGraphicsExposures;
 | 
				
			||||||
 | 
					    gcv.foreground = fore_pix;
 | 
				
			||||||
 | 
					    gcv.background = back_pix;
 | 
				
			||||||
 | 
					    gcv.graphics_exposures = 0;
 | 
				
			||||||
 | 
					    NormalGC = XCreateGC (display, Root, gcm, &gcv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* ONLYSHAPE ON */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pixmask = XCreateBitmapFromData (display, win, pixmask_bits, pixmask_width, pixmask_height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XShapeCombineMask (display, win, ShapeBounding, 0, 0, pixmask, ShapeSet);
 | 
				
			||||||
 | 
					    XShapeCombineMask (display, iconwin, ShapeBounding, 0, 0, pixmask, ShapeSet);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* ONLYSHAPE OFF */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mywmhints.initial_state = WithdrawnState;
 | 
				
			||||||
 | 
					    mywmhints.icon_window = iconwin;
 | 
				
			||||||
 | 
					    mywmhints.icon_x = mysizehints.x;
 | 
				
			||||||
 | 
					    mywmhints.icon_y = mysizehints.y;
 | 
				
			||||||
 | 
					    mywmhints.window_group = win;
 | 
				
			||||||
 | 
					    mywmhints.flags = StateHint | IconWindowHint | IconPositionHint | WindowGroupHint;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XSetWMHints (display, win, &mywmhints);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XSetCommand (display, win, argv, argc);
 | 
				
			||||||
 | 
					    XMapWindow (display, win);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (geometry)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  if (sscanf (geometry, "+%d+%d", &wx, &wy) != 2)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							fprintf (stderr, "Bad geometry string.\n");
 | 
				
			||||||
 | 
							exit (1);
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  XMoveWindow (display, win, wx, wy);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										42
									
								
								yawmppp/src/dockapp/wmgeneral.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								yawmppp/src/dockapp/wmgeneral.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					#ifndef WMGENERAL_H_INCLUDED
 | 
				
			||||||
 | 
					#define WMGENERAL_H_INCLUDED
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /***********/
 | 
				
			||||||
 | 
					 /* Defines */
 | 
				
			||||||
 | 
					/***********/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX_MOUSE_REGION (16)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /************/
 | 
				
			||||||
 | 
					 /* Typedefs */
 | 
				
			||||||
 | 
					/************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						Pixmap			pixmap;
 | 
				
			||||||
 | 
						Pixmap			mask;
 | 
				
			||||||
 | 
						XpmAttributes	attributes;
 | 
				
			||||||
 | 
					} XpmIcon;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /*******************/
 | 
				
			||||||
 | 
					 /* Global variable */
 | 
				
			||||||
 | 
					/*******************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Display		*display;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /***********************/
 | 
				
			||||||
 | 
					 /* Function Prototypes */
 | 
				
			||||||
 | 
					/***********************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AddMouseRegion(int index, int left, int top, int right, int bottom);
 | 
				
			||||||
 | 
					int CheckMouseRegion(int x, int y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void openXwindow(int argc, char *argv[], char **, char *, int, int);
 | 
				
			||||||
 | 
					void RedrawWindow(void);
 | 
				
			||||||
 | 
					void RedrawWindowXY(int x, int y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void createXBMfromXPM(char *, char **, int, int);
 | 
				
			||||||
 | 
					void copyXPMArea(int, int, int, int, int, int);
 | 
				
			||||||
 | 
					void copyXBMArea(int, int, int, int, int, int);
 | 
				
			||||||
 | 
					void setMaskXY(int, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										991
									
								
								yawmppp/src/dockapp/yawmppp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										991
									
								
								yawmppp/src/dockapp/yawmppp.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,991 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   YAWMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 2000,2001:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Author:  Felipe Bergo     (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   based on the wmppp application by
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Martijn Pieterse (pieterse@xs4all.nl)
 | 
				
			||||||
 | 
					            Antoine Nulle    (warp@xs4all.nl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   $Id: yawmppp.c,v 1.1.1.1 2001/02/22 07:16:01 bergo Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <fcntl.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/wait.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#include <sys/param.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <X11/Xlib.h>
 | 
				
			||||||
 | 
					#include <X11/xpm.h>
 | 
				
			||||||
 | 
					#include <X11/extensions/shape.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "wmgeneral.h"
 | 
				
			||||||
 | 
					#include "misc.h"
 | 
				
			||||||
 | 
					#include "isprc.h"
 | 
				
			||||||
 | 
					#include "ycommon.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "dockxpm.xpm"
 | 
				
			||||||
 | 
					#include "yawmppp.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* external vars */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char **environ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* global variables */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					long starttime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *ProgName;
 | 
				
			||||||
 | 
					char *active_interface = "ppp0";
 | 
				
			||||||
 | 
					int TimerDivisor = 60;
 | 
				
			||||||
 | 
					int updaterate = 5;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int dock_mask_width = 64;
 | 
				
			||||||
 | 
					int dock_mask_height = 64;
 | 
				
			||||||
 | 
					char dock_mask_bits[64 * 64];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int current_isp = 0;
 | 
				
			||||||
 | 
					int num_isps = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int got_sched=0;
 | 
				
			||||||
 | 
					int caution=1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct YAWMPPP_ISP_INFO IspData[MAX_ISPS];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* log data */
 | 
				
			||||||
 | 
					struct {
 | 
				
			||||||
 | 
					  time_t start;
 | 
				
			||||||
 | 
					  time_t end;
 | 
				
			||||||
 | 
					  int    status; /* 0=ok 1=error 2=crash */
 | 
				
			||||||
 | 
					  char   longname[128];
 | 
				
			||||||
 | 
					  char   shortname[16];
 | 
				
			||||||
 | 
					  char   phone[32];
 | 
				
			||||||
 | 
					  char   user[32];
 | 
				
			||||||
 | 
					} logconn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PPP variables */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define 	PPP_UNIT		0
 | 
				
			||||||
 | 
					int ppp_h = -1;
 | 
				
			||||||
 | 
					int ppp_open = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define		PPP_STATS_HIS	54
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int pixels_per_byte;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ppp_history[PPP_STATS_HIS + 1][2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* main */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					main (int argc, char *argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Parse Command Line */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ProgName = argv[0];
 | 
				
			||||||
 | 
					    if (strlen (ProgName) >= 5)
 | 
				
			||||||
 | 
						ProgName += (strlen (ProgName) - 5);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 1; i < argc; i++)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  char *arg = argv[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  if (*arg == '-')
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							switch (arg[1])
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							  case 'c':
 | 
				
			||||||
 | 
							    caution=1;
 | 
				
			||||||
 | 
							    break;
 | 
				
			||||||
 | 
							  case 'd':
 | 
				
			||||||
 | 
							      if (strcmp (arg + 1, "display"))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'g':
 | 
				
			||||||
 | 
							      if (strcmp (arg + 1, "geometry"))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'i':
 | 
				
			||||||
 | 
							      if (!argv[i + 1])
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      if (strncmp (argv[i + 1], "ppp", 3))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      active_interface = argv[i + 1];
 | 
				
			||||||
 | 
							      i++;
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'p':
 | 
				
			||||||
 | 
							    caution=2;
 | 
				
			||||||
 | 
							    break;
 | 
				
			||||||
 | 
							  case 't':
 | 
				
			||||||
 | 
							      TimerDivisor = 1;
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'u':
 | 
				
			||||||
 | 
							      i++;
 | 
				
			||||||
 | 
							      if (!argv[i])
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      updaterate = atoi (argv[i]);
 | 
				
			||||||
 | 
							      if (updaterate < 1 || updaterate > 10)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    usage ();
 | 
				
			||||||
 | 
								    exit (1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'v':
 | 
				
			||||||
 | 
							      printversion ();
 | 
				
			||||||
 | 
							      exit (0);
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case 'z':
 | 
				
			||||||
 | 
							    printf("Caution level: %d\n",caution);
 | 
				
			||||||
 | 
							    break;
 | 
				
			||||||
 | 
							  default:
 | 
				
			||||||
 | 
							      usage ();
 | 
				
			||||||
 | 
							      exit (0);
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (i = 0; i < MAX_ISPS; i++)
 | 
				
			||||||
 | 
					      memset(&IspData[i],0,sizeof(struct YAWMPPP_ISP_INFO));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make_config_dir();
 | 
				
			||||||
 | 
					    signal(SIGUSR1,sigusr_handler);
 | 
				
			||||||
 | 
					    signal(SIGHUP,sigusr_handler);
 | 
				
			||||||
 | 
					    signal(SIGINT,sigusr_handler);
 | 
				
			||||||
 | 
					    signal(SIGTERM,sigusr_handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    write_pid_file();
 | 
				
			||||||
 | 
					    clean_guards();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    yawmppp_routine (argc, argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					yawmppp_routine (int argc, char **argv)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int i, j;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int but_stat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    long currenttime;
 | 
				
			||||||
 | 
					    long lasttime;
 | 
				
			||||||
 | 
					    long waittime;
 | 
				
			||||||
 | 
					    long ppptime;
 | 
				
			||||||
 | 
					    int hour, minute;
 | 
				
			||||||
 | 
					    long timetolog;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    long ppp_send, ppp_sl = -1;
 | 
				
			||||||
 | 
					    long ppp_recv, ppp_rl = -1;
 | 
				
			||||||
 | 
					    long ppp_sbytes, ppp_rbytes;
 | 
				
			||||||
 | 
					    long ppp_osbytes, ppp_orbytes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    struct stat st;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pid_t stop_child = 0;
 | 
				
			||||||
 | 
					    pid_t start_child = 0;
 | 
				
			||||||
 | 
					    int status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int isonline = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    XEvent Event;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int speed_ind = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* Initialize some stuff */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    get_statistics (active_interface, &ppp_rl, &ppp_sl,
 | 
				
			||||||
 | 
							    &ppp_orbytes, &ppp_osbytes);
 | 
				
			||||||
 | 
					    if (caution>0)
 | 
				
			||||||
 | 
					      close_ppp();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    grab_isp_info(1);
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					    /* Open the display */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    createXBMfromXPM (dock_mask_bits, dockxpm_xpm,
 | 
				
			||||||
 | 
							      dock_mask_width, dock_mask_height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    openXwindow (argc, argv, dockxpm_xpm, dock_mask_bits,
 | 
				
			||||||
 | 
							 dock_mask_width, dock_mask_height);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* V Button */
 | 
				
			||||||
 | 
					    AddMouseRegion (0, 35, 48, 46, 58);
 | 
				
			||||||
 | 
					    /* x Button */
 | 
				
			||||||
 | 
					    AddMouseRegion (1, 47, 48, 58, 58);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* < Button */
 | 
				
			||||||
 | 
					    AddMouseRegion (2, 5, 48, 16, 58);
 | 
				
			||||||
 | 
					    /* > Button */
 | 
				
			||||||
 | 
					    AddMouseRegion (3, 17, 48, 28, 58);
 | 
				
			||||||
 | 
					    /* ISP display */
 | 
				
			||||||
 | 
					    AddMouseRegion (4, 5, 6, 59, 43);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    starttime = 0;
 | 
				
			||||||
 | 
					    currenttime = time (0);
 | 
				
			||||||
 | 
					    ppptime = 0;
 | 
				
			||||||
 | 
					    but_stat = -1;
 | 
				
			||||||
 | 
					    waittime = 0;
 | 
				
			||||||
 | 
					    timetolog=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* 888k8 on bottom */
 | 
				
			||||||
 | 
					    copyXPMArea (ERR_SRC_X+28, ERR_SRC_Y+9, 25, 8, ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    DrawISPName ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    while (1)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  lasttime = currenttime;
 | 
				
			||||||
 | 
						  currenttime = time (0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  /* Check if any child has left the playground */
 | 
				
			||||||
 | 
						  i = waitpid (0, &status, WNOHANG);
 | 
				
			||||||
 | 
						  if (i == stop_child && stop_child != 0)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							starttime = 0;
 | 
				
			||||||
 | 
							SetOffLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
							SetOffLED (LED_PPP_RX);
 | 
				
			||||||
 | 
							SetOffLED (LED_PPP_TX);
 | 
				
			||||||
 | 
							/* 888k8 on bottom */
 | 
				
			||||||
 | 
							copyXPMArea (ERR_SRC_X+28, ERR_SRC_Y+9, 25, 8,
 | 
				
			||||||
 | 
								     ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
							RedrawWindow ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							stop_child = 0;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  if (i == start_child && start_child != 0)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							if (WIFEXITED (status))
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      if (WEXITSTATUS (status) == 10)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    starttime = 0;
 | 
				
			||||||
 | 
								    /* 88k8 on bottom */
 | 
				
			||||||
 | 
								    copyXPMArea (ERR_SRC_X+28, ERR_SRC_Y+9, 25, 8,
 | 
				
			||||||
 | 
										 ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
								    SetOffLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
								    DrawTime (0, 1);
 | 
				
			||||||
 | 
								    RedrawWindow ();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      start_child = 0;
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  /* On-line detectie! 1x per second */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  if (currenttime != lasttime)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							i = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (stillonline (active_interface))
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      i = 1;
 | 
				
			||||||
 | 
							      if (!starttime)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    starttime = currenttime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    if (stat (STAMP_FILE, &st) == 0)
 | 
				
			||||||
 | 
									starttime = st.st_mtime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    SetOnLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
								    waittime = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    /* 88k8 on bottom */
 | 
				
			||||||
 | 
								    copyXPMArea (ERR_SRC_X+28, ERR_SRC_Y+9, 25, 8,
 | 
				
			||||||
 | 
										 ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    if (IspData[current_isp].SpeedAction)
 | 
				
			||||||
 | 
									DrawSpeedInd (IspData[current_isp].SpeedAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    speed_ind = currenttime + 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								    RedrawWindow ();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
							if (!i && starttime)
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      starttime = 0;
 | 
				
			||||||
 | 
							      SetErrLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
							      logconn.status=1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      /* Error */
 | 
				
			||||||
 | 
							      copyXPMArea (ERR_SRC_X, ERR_SRC_Y+9, 25, 8,
 | 
				
			||||||
 | 
									   ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      if (IspData[current_isp].IfDownAction)
 | 
				
			||||||
 | 
								  execCommand (IspData[current_isp].IfDownAction);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      RedrawWindow ();
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  if (waittime && waittime <= currenttime)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							SetOffLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
							RedrawWindow ();
 | 
				
			||||||
 | 
							waittime = 0;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  if ((starttime)&&(!isonline)) {
 | 
				
			||||||
 | 
						    isonline=1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    logconn.start=time(NULL);
 | 
				
			||||||
 | 
						    logconn.status=0;
 | 
				
			||||||
 | 
						    strcpy(logconn.longname,IspData[current_isp].LongName);
 | 
				
			||||||
 | 
						    strcpy(logconn.shortname,IspData[current_isp].ShortName);
 | 
				
			||||||
 | 
						    strcpy(logconn.user,IspData[current_isp].User);
 | 
				
			||||||
 | 
						    strcpy(logconn.phone,IspData[current_isp].Phone);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    if (!strlen(logconn.shortname))
 | 
				
			||||||
 | 
						      strcpy(logconn.shortname,"empty");
 | 
				
			||||||
 | 
						    if (!strlen(logconn.longname))
 | 
				
			||||||
 | 
						      strcpy(logconn.longname,"empty");
 | 
				
			||||||
 | 
						    if (!strlen(logconn.user))
 | 
				
			||||||
 | 
						      strcpy(logconn.user,"empty");
 | 
				
			||||||
 | 
						    if (!strlen(logconn.phone))
 | 
				
			||||||
 | 
						      strcpy(logconn.phone,"empty");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    make_guards();
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
 | 
						  if ((!starttime)&&(isonline)) {
 | 
				
			||||||
 | 
						    isonline=0;
 | 
				
			||||||
 | 
						    logconn.end=time(NULL);
 | 
				
			||||||
 | 
						    write_log();
 | 
				
			||||||
 | 
						    if (got_sched)
 | 
				
			||||||
 | 
						      make_delayed_update();
 | 
				
			||||||
 | 
						    if (caution>0)
 | 
				
			||||||
 | 
						      close_ppp();
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  /* If we are on-line. Print the time we are */
 | 
				
			||||||
 | 
						  if (starttime)
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							i = currenttime - starttime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							i /= TimerDivisor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (TimerDivisor == 1)
 | 
				
			||||||
 | 
							    if (i > 59 * 60 + 59)
 | 
				
			||||||
 | 
								i /= 60;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							minute = i % 60;
 | 
				
			||||||
 | 
							hour = (i / 60) % 100;
 | 
				
			||||||
 | 
							i = hour * 100 + minute;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							DrawTime (i, currenttime % 2);
 | 
				
			||||||
 | 
							/* We are online, so we can check for send/recv packets */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							get_statistics (active_interface, &ppp_recv, &ppp_send,
 | 
				
			||||||
 | 
									&ppp_rbytes, &ppp_sbytes);
 | 
				
			||||||
 | 
							if (caution>1)
 | 
				
			||||||
 | 
							  close_ppp();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (ppp_send != ppp_sl)
 | 
				
			||||||
 | 
							    SetOnLED (LED_PPP_TX);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    SetOffLED (LED_PPP_TX);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (ppp_recv != ppp_rl)
 | 
				
			||||||
 | 
							    SetOnLED (LED_PPP_RX);
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    SetOffLED (LED_PPP_RX);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							ppp_sl = ppp_send;
 | 
				
			||||||
 | 
							ppp_rl = ppp_recv;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							/* Every five seconds we check to load on the line */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (currenttime - timetolog >= 0) {
 | 
				
			||||||
 | 
							  timetolog=currenttime + 60;
 | 
				
			||||||
 | 
							  make_guards();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if ((currenttime - ppptime >= 0) || (ppptime == 0))
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      ppptime = currenttime + updaterate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      ppp_history[PPP_STATS_HIS][0] = ppp_rbytes - ppp_orbytes;
 | 
				
			||||||
 | 
							      ppp_history[PPP_STATS_HIS][1] = ppp_sbytes - ppp_osbytes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      ppp_orbytes = ppp_rbytes;
 | 
				
			||||||
 | 
							      ppp_osbytes = ppp_sbytes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      DrawStats (54, 17, 5, 32);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      for (j = 1; j < 55; j++)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    ppp_history[j - 1][0] = ppp_history[j][0];
 | 
				
			||||||
 | 
								    ppp_history[j - 1][1] = ppp_history[j][1];
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      if (currenttime > speed_ind)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    DrawLoadInd ((ppp_history[54][0] + ppp_history[54][1]) / updaterate);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							RedrawWindow ();
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  while (XPending (display))
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							XNextEvent (display, &Event);
 | 
				
			||||||
 | 
							switch (Event.type)
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							  case Expose:
 | 
				
			||||||
 | 
							      RedrawWindow ();
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case DestroyNotify:
 | 
				
			||||||
 | 
							      XCloseDisplay (display);
 | 
				
			||||||
 | 
							      while (start_child | stop_child)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    i = waitpid (0, &status, WNOHANG);
 | 
				
			||||||
 | 
								    if (i == stop_child)
 | 
				
			||||||
 | 
									stop_child = 0;
 | 
				
			||||||
 | 
								    if (i == start_child)
 | 
				
			||||||
 | 
									start_child = 0;
 | 
				
			||||||
 | 
								    usleep (50000l);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      exit (0);
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case ButtonPress:
 | 
				
			||||||
 | 
							      i = CheckMouseRegion (Event.xbutton.x, Event.xbutton.y);
 | 
				
			||||||
 | 
							      switch (i)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								case 0:
 | 
				
			||||||
 | 
								    ButtonDown (BUT_V);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 1:
 | 
				
			||||||
 | 
								    ButtonDown (BUT_X);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 2:
 | 
				
			||||||
 | 
								    ButtonDown (BUT_REW);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 3:
 | 
				
			||||||
 | 
								    ButtonDown (BUT_FF);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      but_stat = i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      RedrawWindow ();
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  case ButtonRelease:
 | 
				
			||||||
 | 
							      i = CheckMouseRegion (Event.xbutton.x, Event.xbutton.y);
 | 
				
			||||||
 | 
							      // Button but_stat omhoogdoen!
 | 
				
			||||||
 | 
							      switch (but_stat)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								case 0:
 | 
				
			||||||
 | 
								    ButtonUp (BUT_V);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 1:
 | 
				
			||||||
 | 
								    ButtonUp (BUT_X);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 2:
 | 
				
			||||||
 | 
								    ButtonUp (BUT_REW);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								case 3:
 | 
				
			||||||
 | 
								    ButtonUp (BUT_FF);
 | 
				
			||||||
 | 
								    break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      if (i == but_stat && but_stat >= 0)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
								    switch (i)
 | 
				
			||||||
 | 
								      {
 | 
				
			||||||
 | 
								      case 0:
 | 
				
			||||||
 | 
									  if (!starttime)
 | 
				
			||||||
 | 
									    {
 | 
				
			||||||
 | 
									      /* 888k8 */
 | 
				
			||||||
 | 
									      copyXPMArea (ERR_SRC_X+28, ERR_SRC_Y+9,
 | 
				
			||||||
 | 
											   25, 8,
 | 
				
			||||||
 | 
											   ERR_DEST_X, ERR_DEST_Y);
 | 
				
			||||||
 | 
										DrawTime (0, 1);
 | 
				
			||||||
 | 
										start_child = execCommand (IspData[current_isp].StartAction);
 | 
				
			||||||
 | 
										SetWaitLED (LED_PPP_POWER);
 | 
				
			||||||
 | 
										waittime = ORANGE_LED_TIMEOUT + currenttime;
 | 
				
			||||||
 | 
									    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									  break;
 | 
				
			||||||
 | 
								      case 1:
 | 
				
			||||||
 | 
									  if (stop_child == 0)
 | 
				
			||||||
 | 
									    {
 | 
				
			||||||
 | 
										stop_child = execCommand (IspData[current_isp].StopAction);
 | 
				
			||||||
 | 
									    }
 | 
				
			||||||
 | 
									  break;
 | 
				
			||||||
 | 
								      case 2:
 | 
				
			||||||
 | 
									  if (!starttime)
 | 
				
			||||||
 | 
									    {
 | 
				
			||||||
 | 
										current_isp--;
 | 
				
			||||||
 | 
										if (current_isp < 0)
 | 
				
			||||||
 | 
										    current_isp = num_isps - 1;
 | 
				
			||||||
 | 
										if (current_isp < 0)
 | 
				
			||||||
 | 
										  current_isp=0;
 | 
				
			||||||
 | 
										DrawISPName ();
 | 
				
			||||||
 | 
									    }
 | 
				
			||||||
 | 
									  break;
 | 
				
			||||||
 | 
								      case 3:
 | 
				
			||||||
 | 
									  if (!starttime)
 | 
				
			||||||
 | 
									    {
 | 
				
			||||||
 | 
										current_isp++;
 | 
				
			||||||
 | 
										if (current_isp == num_isps)
 | 
				
			||||||
 | 
										    current_isp = 0;
 | 
				
			||||||
 | 
										DrawISPName ();
 | 
				
			||||||
 | 
									    }
 | 
				
			||||||
 | 
									  break;
 | 
				
			||||||
 | 
								      case 4:
 | 
				
			||||||
 | 
									if (Event.xbutton.button==Button1)
 | 
				
			||||||
 | 
									  run_pref_app();
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
									  run_log_app();
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								      }
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							      RedrawWindow ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							      but_stat = -1;
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  default:
 | 
				
			||||||
 | 
							      break;
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  usleep (50000L);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* DrawTime */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					DrawTime (int i, int j)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int k = 1000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    copyXPMArea (TIMER_SZE_X * ((i / k) % 10) + 1, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							 5, 7,
 | 
				
			||||||
 | 
							 TIMER_DES_X + 6 * 0, TIMER_DES_Y);
 | 
				
			||||||
 | 
					    k = k / 10;
 | 
				
			||||||
 | 
					    copyXPMArea (TIMER_SZE_X * ((i / k) % 10) + 1, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							 5, 7,
 | 
				
			||||||
 | 
							 TIMER_DES_X + 6 * 1, TIMER_DES_Y);
 | 
				
			||||||
 | 
					    k = k / 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* colon */
 | 
				
			||||||
 | 
					    if (j)
 | 
				
			||||||
 | 
						copyXPMArea (62, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							     1, 7,
 | 
				
			||||||
 | 
							     TIMER_DES_X + 6 * 2 + 1, TIMER_DES_Y);
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						copyXPMArea (63, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							     1, 7,
 | 
				
			||||||
 | 
							     TIMER_DES_X + 6 * 2 + 1, TIMER_DES_Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    copyXPMArea (TIMER_SZE_X * ((i / k) % 10) + 1, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							 5, 7,
 | 
				
			||||||
 | 
							 TIMER_DES_X + 6 * 2 + 4, TIMER_DES_Y);
 | 
				
			||||||
 | 
					    k = k / 10;
 | 
				
			||||||
 | 
					    copyXPMArea (TIMER_SZE_X * ((i / k) % 10) + 1, TIMER_SRC_Y,
 | 
				
			||||||
 | 
							 5, 7,
 | 
				
			||||||
 | 
							 TIMER_DES_X + 6 * 3 + 4, TIMER_DES_Y);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					DrawStats (int num, int size, int x_left, int y_bottom)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int pixels_per_byte;
 | 
				
			||||||
 | 
					    int j, k;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pixels_per_byte = size;
 | 
				
			||||||
 | 
					    for (j = 0; j < num; j++)
 | 
				
			||||||
 | 
					      if ((ppp_history[j][0]+ppp_history[j][1]) > pixels_per_byte)
 | 
				
			||||||
 | 
						pixels_per_byte = ppp_history[j][0] + ppp_history[j][1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pixels_per_byte /= size;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for (k = 0; k < num; k++)
 | 
				
			||||||
 | 
					      for (j = 0; j < size; j++)
 | 
				
			||||||
 | 
						{	    
 | 
				
			||||||
 | 
						  if (j < (ppp_history[k][0] / pixels_per_byte))
 | 
				
			||||||
 | 
						    copyXPMArea (58 + 2, 92, 1, 1, k + x_left, y_bottom - j);
 | 
				
			||||||
 | 
						  else if (j < (ppp_history[k][0] + ppp_history[k][1]) / pixels_per_byte)
 | 
				
			||||||
 | 
						    copyXPMArea (58 + 1, 92, 1, 1, k + x_left, y_bottom - j);
 | 
				
			||||||
 | 
						  else
 | 
				
			||||||
 | 
						    copyXPMArea (58 + 0, 92, 1, 1, k + x_left, y_bottom - j);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					PrintLittle (int i, int *k)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (i)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case -1:
 | 
				
			||||||
 | 
						  *k -= 5;
 | 
				
			||||||
 | 
						  copyXPMArea (12 * 5, ERR_SRC_Y, 4, 8, *k, ERR_DEST_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case 0:
 | 
				
			||||||
 | 
						  *k -= 5;
 | 
				
			||||||
 | 
						  copyXPMArea (45, ERR_SRC_Y, 5, 8, *k, ERR_DEST_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      default:
 | 
				
			||||||
 | 
						  *k -= 5;
 | 
				
			||||||
 | 
						  copyXPMArea (i * 5 - 5, ERR_SRC_Y, 5, 8, *k, ERR_DEST_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					DrawSpeedInd (char *speed_action)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int linespeed, i, k;
 | 
				
			||||||
 | 
					    FILE *fp;
 | 
				
			||||||
 | 
					    char *p;
 | 
				
			||||||
 | 
					    char temp[128];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fp = popen (speed_action, "r");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (fp)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  linespeed = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  while (fgets (temp, 128, fp))
 | 
				
			||||||
 | 
						      ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  pclose (fp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  if ((p = strstr (temp, "CONNECT")))
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							linespeed = atoi (p + 8);
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  k = ERR_DEST_X+25;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  i = (linespeed % 1000) / 100;
 | 
				
			||||||
 | 
						  linespeed /= 1000;
 | 
				
			||||||
 | 
						  PrintLittle (i, &k);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  k -= 5;
 | 
				
			||||||
 | 
						  copyXPMArea (ERR_SRC_X+50, ERR_SRC_Y, 5, 8, k, ERR_DEST_Y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  do
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							PrintLittle (linespeed % 10, &k);
 | 
				
			||||||
 | 
							linespeed /= 10;
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  while (linespeed);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* DrawLoadInd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					DrawLoadInd (int speed)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    int i, k;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    k = ERR_DEST_X+25;
 | 
				
			||||||
 | 
					    for (i = 0; i < 5; i++)
 | 
				
			||||||
 | 
						PrintLittle (-1, &k);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    k = ERR_DEST_X+25;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    do
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  PrintLittle (speed % 10, &k);
 | 
				
			||||||
 | 
						  speed /= 10;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    while (speed);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* usage */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					usage (void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    fprintf (stderr, 
 | 
				
			||||||
 | 
						     "\nyawmppp - Yet Another Window Maker PPP dock applet\n\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, 
 | 
				
			||||||
 | 
						     "version %s\n\n",VERSION);
 | 
				
			||||||
 | 
					    fprintf (stderr, "usage:\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-h                   this help screen\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-i <device>          (ppp0, ppp1, etc)\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-t                   set the on-line timer to MM:SS instead of HH:MM\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-u <update rate>     (1..10), default 5 seconds\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-v                   print the version number\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "-paranoid            be paranoid about open sockets\n");
 | 
				
			||||||
 | 
					    fprintf (stderr, "\n");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* printversion */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					printversion (void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    fprintf (stderr, "%s\n", VERSION);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SetOnLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					SetOnLED (int led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    switch (led)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case LED_PPP_POWER:
 | 
				
			||||||
 | 
						  copyXPMArea (LED_ON_X, LED_ON_Y, LED_SZE_X, LED_SZE_Y, LED_PWR_X, LED_PWR_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case LED_PPP_RX:
 | 
				
			||||||
 | 
						  copyXPMArea (ARR_DN_X, ARR_DN_Y+ARR_ACTV, ARR_W, ARR_H, LED_RCV_X, LED_RCV_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case LED_PPP_TX:
 | 
				
			||||||
 | 
						  copyXPMArea (ARR_UP_X, ARR_UP_Y+ARR_ACTV, ARR_W, ARR_H, LED_SND_X, LED_SND_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SetOffLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					SetOffLED (int led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (led)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case LED_PPP_POWER:
 | 
				
			||||||
 | 
						  copyXPMArea (LED_OFF_X, LED_OFF_Y, LED_SZE_X, LED_SZE_Y, LED_PWR_X, LED_PWR_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case LED_PPP_RX:
 | 
				
			||||||
 | 
						  copyXPMArea (ARR_DN_X, ARR_DN_Y , ARR_W, ARR_H, LED_RCV_X, LED_RCV_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case LED_PPP_TX:
 | 
				
			||||||
 | 
						  copyXPMArea (ARR_UP_X, ARR_UP_Y, ARR_W, ARR_H, LED_SND_X, LED_SND_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SetErrELD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					SetErrLED (int led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (led)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case LED_PPP_POWER:
 | 
				
			||||||
 | 
						  copyXPMArea (LED_ERR_X, LED_ERR_Y, LED_SZE_X, LED_SZE_Y, LED_PWR_X, LED_PWR_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SetWaitLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					SetWaitLED (int led)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (led)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case LED_PPP_POWER:
 | 
				
			||||||
 | 
						  copyXPMArea (LED_WTE_X, LED_WTE_Y, LED_SZE_X, LED_SZE_Y, LED_PWR_X, LED_PWR_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Button Up */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					ButtonUp (int button)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (button)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case BUT_V:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_V_SRC_X+BUT_UP_INC, BUT_V_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_V_X, BUT_V_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_X:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_X_SRC_X+BUT_UP_INC, BUT_X_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_X_X, BUT_X_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_REW:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_R_SRC_X+BUT_UP_INC, BUT_R_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_R_X, BUT_R_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_FF:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_F_SRC_X+BUT_UP_INC, BUT_F_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_F_X, BUT_F_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Button Down */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					ButtonDown (int button)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (button)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      case BUT_V:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_V_SRC_X, BUT_V_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_V_X, BUT_V_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_X:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_X_SRC_X, BUT_X_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_X_X, BUT_X_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_REW:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_R_SRC_X, BUT_R_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_R_X, BUT_R_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      case BUT_FF:
 | 
				
			||||||
 | 
						  copyXPMArea (BUT_F_SRC_X, BUT_F_SRC_Y,
 | 
				
			||||||
 | 
							       12, 11,
 | 
				
			||||||
 | 
							       BUT_F_X, BUT_F_Y);
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					DrawISPName (void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int i, s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    s = strlen (IspData[current_isp].ShortName);
 | 
				
			||||||
 | 
					    for (i = 0; i < 5; i++)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  if (s >= (i + 1))
 | 
				
			||||||
 | 
						      draw_isp_char (i, IspData[current_isp].ShortName[i]);
 | 
				
			||||||
 | 
						  else
 | 
				
			||||||
 | 
						      draw_isp_char (i, ' ');
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					draw_isp_char (int pos, char letter)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    int sx = 0, sy = 0, ac = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((!ac) && (letter >= 'A') && (letter <= 'Z'))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  sx = UPPER_ABC_BASE_X;
 | 
				
			||||||
 | 
						  sy = UPPER_ABC_BASE_Y;
 | 
				
			||||||
 | 
						  sy += 8 * ((letter - 'A') / 12);
 | 
				
			||||||
 | 
						  sx += 5 * ((letter - 'A') % 12);
 | 
				
			||||||
 | 
						  ac = 1;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    if ((!ac) && (letter >= 'a') && (letter <= 'z'))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  sx = LOWER_ABC_BASE_X;
 | 
				
			||||||
 | 
						  sy = LOWER_ABC_BASE_Y;
 | 
				
			||||||
 | 
						  sy += 8 * ((letter - 'a') / 12);
 | 
				
			||||||
 | 
						  sx += 5 * ((letter - 'a') % 12);
 | 
				
			||||||
 | 
						  ac = 1;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    if ((!ac) && (letter >= '0') && (letter <= '9'))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  sx = DIGIT_BASE_X;
 | 
				
			||||||
 | 
						  sy = DIGIT_BASE_Y;
 | 
				
			||||||
 | 
						  sx += 5 * (letter - '0');
 | 
				
			||||||
 | 
						  ac = 1;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    if (!ac)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  sx = SPACE_BASE_X;
 | 
				
			||||||
 | 
						  sy = SPACE_BASE_Y;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    copyXPMArea (sx, sy, 4, 7, ISP_BASE_X + 5 * pos, ISP_BASE_Y);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					sigusr_handler(int signum)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (signum==SIGUSR1) {
 | 
				
			||||||
 | 
					    if (!starttime) {
 | 
				
			||||||
 | 
					      grab_isp_info(0);
 | 
				
			||||||
 | 
					      if (current_isp>=num_isps)
 | 
				
			||||||
 | 
						current_isp=0;
 | 
				
			||||||
 | 
					      DrawISPName();
 | 
				
			||||||
 | 
					      RedrawWindow();
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      got_sched=1;
 | 
				
			||||||
 | 
					      warn_pref();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else {
 | 
				
			||||||
 | 
					    remove_pid_file();
 | 
				
			||||||
 | 
					    exit(0);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					make_delayed_update(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  grab_isp_info(0);
 | 
				
			||||||
 | 
					  if (current_isp>=num_isps)
 | 
				
			||||||
 | 
					    current_isp=0;
 | 
				
			||||||
 | 
					  DrawISPName();
 | 
				
			||||||
 | 
					  RedrawWindow();
 | 
				
			||||||
 | 
					  got_sched=0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										142
									
								
								yawmppp/src/dockapp/yawmppp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								yawmppp/src/dockapp/yawmppp.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,142 @@
 | 
				
			||||||
 | 
					/* DEFINES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define START_ACTION (NULL)
 | 
				
			||||||
 | 
					#define STOP_ACTION (NULL)
 | 
				
			||||||
 | 
					#define SPEED_ACTION (NULL)
 | 
				
			||||||
 | 
					#define IFDOWN_ACTION (NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAMP_FILE "/var/run/ppp0.pid"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_PPP_RX              (1)
 | 
				
			||||||
 | 
					#define LED_PPP_TX		(2)
 | 
				
			||||||
 | 
					#define LED_PPP_POWER		(3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V			(1)
 | 
				
			||||||
 | 
					#define BUT_X			(2)
 | 
				
			||||||
 | 
					#define BUT_REW			(3)
 | 
				
			||||||
 | 
					#define BUT_FF  		(4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TIMER_SRC_Y		(176)
 | 
				
			||||||
 | 
					#define TIMER_DES_Y		(8)
 | 
				
			||||||
 | 
					#define TIMER_DES_X             (7)
 | 
				
			||||||
 | 
					#define TIMER_SZE_X             (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_ON_X                (51)
 | 
				
			||||||
 | 
					#define LED_ON_Y                (87)
 | 
				
			||||||
 | 
					#define LED_OFF_X               (51)
 | 
				
			||||||
 | 
					#define LED_OFF_Y               (82)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_ERR_X               (57)
 | 
				
			||||||
 | 
					#define LED_ERR_Y               (82)
 | 
				
			||||||
 | 
					#define LED_WTE_X               (57)
 | 
				
			||||||
 | 
					#define LED_WTE_Y               (87)
 | 
				
			||||||
 | 
					#define LED_SZE_X               (4)
 | 
				
			||||||
 | 
					#define LED_SZE_Y               (4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_PWR_X               (52)
 | 
				
			||||||
 | 
					#define LED_PWR_Y                (9)
 | 
				
			||||||
 | 
					#define LED_SND_X               (44)
 | 
				
			||||||
 | 
					#define LED_SND_Y                (9)
 | 
				
			||||||
 | 
					#define LED_RCV_X               (37)
 | 
				
			||||||
 | 
					#define LED_RCV_Y                (9)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ISP_BASE_X               (6)
 | 
				
			||||||
 | 
					#define ISP_BASE_Y              (35)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define UPPER_ABC_BASE_X         (1)
 | 
				
			||||||
 | 
					#define UPPER_ABC_BASE_Y       (124)
 | 
				
			||||||
 | 
					#define LOWER_ABC_BASE_X         (1)
 | 
				
			||||||
 | 
					#define LOWER_ABC_BASE_Y       (148)
 | 
				
			||||||
 | 
					#define DIGIT_BASE_X            (11)
 | 
				
			||||||
 | 
					#define DIGIT_BASE_Y           (164)
 | 
				
			||||||
 | 
					#define SPACE_BASE_X            (11)
 | 
				
			||||||
 | 
					#define SPACE_BASE_Y           (140)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_DEST_X              (34)
 | 
				
			||||||
 | 
					#define ERR_DEST_Y              (35)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_SRC_X                (0)
 | 
				
			||||||
 | 
					#define ERR_SRC_Y               (94)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V_X                 (35)
 | 
				
			||||||
 | 
					#define BUT_V_Y                 (48)
 | 
				
			||||||
 | 
					#define BUT_X_X                 (47)
 | 
				
			||||||
 | 
					#define BUT_X_Y                 (48)
 | 
				
			||||||
 | 
					#define BUT_R_X                  (5)
 | 
				
			||||||
 | 
					#define BUT_R_Y                 (48)
 | 
				
			||||||
 | 
					#define BUT_F_X                 (17)
 | 
				
			||||||
 | 
					#define BUT_F_Y                 (48)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V_SRC_X              (0)
 | 
				
			||||||
 | 
					#define BUT_V_SRC_Y             (70)
 | 
				
			||||||
 | 
					#define BUT_X_SRC_X             (12)
 | 
				
			||||||
 | 
					#define BUT_X_SRC_Y             (70)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_R_SRC_X              (0)
 | 
				
			||||||
 | 
					#define BUT_R_SRC_Y             (82)
 | 
				
			||||||
 | 
					#define BUT_F_SRC_X             (12)
 | 
				
			||||||
 | 
					#define BUT_F_SRC_Y             (82)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_UP_INC              (24)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ARR_UP_X                (50)
 | 
				
			||||||
 | 
					#define ARR_UP_Y                (70)
 | 
				
			||||||
 | 
					#define ARR_DN_X                (57)
 | 
				
			||||||
 | 
					#define ARR_DN_Y                (70)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ARR_ACTV                (5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ARR_W                   (7)
 | 
				
			||||||
 | 
					#define ARR_H                   (4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ORANGE_LED_TIMEOUT (60)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* prototypes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void usage (void);
 | 
				
			||||||
 | 
					void printversion (void);
 | 
				
			||||||
 | 
					void DrawTime (int, int);
 | 
				
			||||||
 | 
					void DrawStats (int, int, int, int);
 | 
				
			||||||
 | 
					void DrawSpeedInd (char *);
 | 
				
			||||||
 | 
					void DrawLoadInd (int);
 | 
				
			||||||
 | 
					void DrawISPName (void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SetOnLED (int);
 | 
				
			||||||
 | 
					void SetErrLED (int);
 | 
				
			||||||
 | 
					void SetWaitLED (int);
 | 
				
			||||||
 | 
					void SetOffLED (int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void ButtonUp (int);
 | 
				
			||||||
 | 
					void ButtonDown (int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void yawmppp_routine (int, char **);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int get_statistics (char *, long *, long *, long *, long *);
 | 
				
			||||||
 | 
					int stillonline (char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void draw_isp_char (int, char);
 | 
				
			||||||
 | 
					void grab_isp_info (int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sigusr_handler(int signum);
 | 
				
			||||||
 | 
					void remove_pid_file(void);
 | 
				
			||||||
 | 
					void write_pid_file(void);
 | 
				
			||||||
 | 
					void make_config_dir(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void run_pref_app(void);
 | 
				
			||||||
 | 
					void run_log_app(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void add_dns(void);
 | 
				
			||||||
 | 
					void remove_dns(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void warn_pref(void);
 | 
				
			||||||
 | 
					void make_delayed_update(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* logs */
 | 
				
			||||||
 | 
					void clean_guards(void);
 | 
				
			||||||
 | 
					void make_guards(void);
 | 
				
			||||||
 | 
					void write_log(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* pcmcia blues ? */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void open_ppp(void);
 | 
				
			||||||
 | 
					void close_ppp(void);
 | 
				
			||||||
							
								
								
									
										35
									
								
								yawmppp/src/gtklog/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								yawmppp/src/gtklog/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# gtklog: shows yawmppp log files
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					CFLAGS = -Wall -O2
 | 
				
			||||||
 | 
					GTKLIB = @GTK_LIBS@
 | 
				
			||||||
 | 
					GTKFLAG = @GTK_FLAGS@
 | 
				
			||||||
 | 
					RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\"
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					EOBJS = ../about.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ALLDOTOS = loglist.o
 | 
				
			||||||
 | 
					ALLDOTHS = loglist.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build_gtklog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_gtklog: $(ALLDOTOS)
 | 
				
			||||||
 | 
						$(CC) $(ALLDOTOS) $(EOBJS) -o yawmppp.log $(GTKLIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(ALLDOTOS): %.o : %.c $(ALLDOTHS)
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) $(RLFLAG) $(GTKFLAG) -I.. -c $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 yawmppp.log @prefix@/bin/yawmppp.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						$(PROGINST) -s -m 0755 yawmppp.log @prefix@/bin/yawmppp.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm -f $(ALLDOTOS) yawmppp.log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						rm -f Makefile *~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										875
									
								
								yawmppp/src/gtklog/loglist.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										875
									
								
								yawmppp/src/gtklog/loglist.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,875 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   YAWMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 2000:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Author: Felipe Bergo (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   $Id: loglist.c,v 1.1.1.1 2001/02/22 07:35:59 bergo Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					#include "loglist.h"
 | 
				
			||||||
 | 
					#include "about.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "status_error.xpm"
 | 
				
			||||||
 | 
					#include "status_crash.xpm"
 | 
				
			||||||
 | 
					#include "status_ok.xpm"
 | 
				
			||||||
 | 
					#include "stepphone.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GtkWidget *applet,*loglist,*lresume[2],*hgraph,*wgraph;
 | 
				
			||||||
 | 
					GdkPixmap *iconmap[3];
 | 
				
			||||||
 | 
					GdkBitmap *maskmap[3];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GdkPixmap *hcanvas=NULL;
 | 
				
			||||||
 | 
					GdkPixmap *wcanvas=NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GList *log=NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* start end difftime statuspix staustext handle name phone user */
 | 
				
			||||||
 | 
					static int colsize[8]={160,160,64,54,45,110,64,64};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char *resumeo[]=
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "All time",
 | 
				
			||||||
 | 
					  "Today",
 | 
				
			||||||
 | 
					  "Yesterday",
 | 
				
			||||||
 | 
					  "This week",
 | 
				
			||||||
 | 
					  "This month",
 | 
				
			||||||
 | 
					  "This year",
 | 
				
			||||||
 | 
					  "Last 24 hours",
 | 
				
			||||||
 | 
					  "Last 7 days",
 | 
				
			||||||
 | 
					  "Last 30 days",
 | 
				
			||||||
 | 
					  "Last 365 days"
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char *titles[8]={"Start time",
 | 
				
			||||||
 | 
								"End time",
 | 
				
			||||||
 | 
								"Online time",
 | 
				
			||||||
 | 
								"Status",
 | 
				
			||||||
 | 
								"ISP",
 | 
				
			||||||
 | 
								"Dialup entry",
 | 
				
			||||||
 | 
								"Phone",
 | 
				
			||||||
 | 
								"User"};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static char *wdays[]={
 | 
				
			||||||
 | 
					  "Sun","Mon","Tue","Wed","Thu","Fri","Sat"
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static long hourly[24],weekly[7];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int nsrc[256];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GList *users=NULL;
 | 
				
			||||||
 | 
					GList *isps=NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* constraints */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					time_t time_cons[2];
 | 
				
			||||||
 | 
					int useridx,ispidx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					main(int argc,char **argv)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<24;i++)
 | 
				
			||||||
 | 
					    hourly[i]=0;
 | 
				
			||||||
 | 
					  for(i=0;i<7;i++)
 | 
				
			||||||
 | 
					    weekly[i]=0;
 | 
				
			||||||
 | 
					  for(i=0;i<256;i++)
 | 
				
			||||||
 | 
					    nsrc[i]=i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  time_cons[0]=0;
 | 
				
			||||||
 | 
					  time_cons[1]=0;
 | 
				
			||||||
 | 
					  useridx=ispidx=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_init(&argc,&argv);
 | 
				
			||||||
 | 
					  gdk_rgb_init();
 | 
				
			||||||
 | 
					  load_log();
 | 
				
			||||||
 | 
					  create_loglist();
 | 
				
			||||||
 | 
					  update_list();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  make_resume();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_main();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_list_free(users);
 | 
				
			||||||
 | 
					  g_list_free(isps);
 | 
				
			||||||
 | 
					  for(i=0;i<3;i++)
 | 
				
			||||||
 | 
					    gdk_pixmap_unref(iconmap[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  free_log();
 | 
				
			||||||
 | 
					  return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					create_loglist(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkWidget *mvb,*sw,*dhb,*dhw[30];
 | 
				
			||||||
 | 
					  GdkBitmap *mask;
 | 
				
			||||||
 | 
					  GdkPixmap *myicon;
 | 
				
			||||||
 | 
					  GtkStyle *style;
 | 
				
			||||||
 | 
					  GList *pt;
 | 
				
			||||||
 | 
					  int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  applet=gtk_window_new(GTK_WINDOW_TOPLEVEL);
 | 
				
			||||||
 | 
					  gtk_window_set_default_size(GTK_WINDOW(applet),780,510);
 | 
				
			||||||
 | 
					  gtk_window_set_title (GTK_WINDOW (applet), "YAWMPPP Connection Log");
 | 
				
			||||||
 | 
					  gtk_window_set_wmclass(GTK_WINDOW(applet),"yawmppp","log");
 | 
				
			||||||
 | 
					  gtk_container_set_border_width(GTK_CONTAINER(applet),4);
 | 
				
			||||||
 | 
					  gtk_widget_show (applet);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  style=gtk_widget_get_style(applet);
 | 
				
			||||||
 | 
					  myicon = gdk_pixmap_create_from_xpm_d (applet->window, &mask,
 | 
				
			||||||
 | 
									       &style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
									       (gchar **) stepphone_xpm);
 | 
				
			||||||
 | 
					  gdk_window_set_icon (applet->window, NULL, myicon, mask);
 | 
				
			||||||
 | 
					  gdk_window_set_icon_name(applet->window,"The Log");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mvb=gtk_vbox_new(FALSE,0);
 | 
				
			||||||
 | 
					  gtk_container_add(GTK_CONTAINER(applet),mvb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhb=gtk_hbox_new(FALSE,0);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhb,FALSE,TRUE,0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* data */
 | 
				
			||||||
 | 
					  dhw[0]=gtk_label_new("Show summary for:");
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[0],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[1]=gtk_option_menu_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[1],FALSE,FALSE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[2]=gtk_menu_new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<10;i++) {
 | 
				
			||||||
 | 
					    dhw[3]=gtk_menu_item_new_with_label(resumeo[i]);
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(time_menu),&nsrc[i]);
 | 
				
			||||||
 | 
					    gtk_menu_append(GTK_MENU(dhw[2]),dhw[3]);
 | 
				
			||||||
 | 
					    gtk_widget_show(dhw[3]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[1]),dhw[2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[12]=gtk_label_new("include entries from");
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[12],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					  dhw[13]=gtk_option_menu_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[13],FALSE,FALSE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[14]=gtk_menu_new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0,pt=isps;pt!=NULL;pt=g_list_next(pt),i++) {
 | 
				
			||||||
 | 
					    dhw[3]=gtk_menu_item_new_with_label((char *)(pt->data));
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(isp_menu),&nsrc[i]);
 | 
				
			||||||
 | 
					    gtk_menu_append(GTK_MENU(dhw[14]),dhw[3]);
 | 
				
			||||||
 | 
					    gtk_widget_show(dhw[3]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[13]),dhw[14]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[15]=gtk_label_new("include connections as");
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[15],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					  dhw[16]=gtk_option_menu_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhb),dhw[16],FALSE,FALSE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[17]=gtk_menu_new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0,pt=users;pt!=NULL;pt=g_list_next(pt),i++) {
 | 
				
			||||||
 | 
					    dhw[3]=gtk_menu_item_new_with_label((char *)(pt->data));
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(dhw[3]),"activate",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(user_menu),&nsrc[i]);
 | 
				
			||||||
 | 
					    gtk_menu_append(GTK_MENU(dhw[17]),dhw[3]);
 | 
				
			||||||
 | 
					    gtk_widget_show(dhw[3]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_option_menu_set_menu(GTK_OPTION_MENU(dhw[16]),dhw[17]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[5]=gtk_hseparator_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[5],FALSE,FALSE,3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[3]=gtk_hbox_new(FALSE,4);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[3],FALSE,TRUE,3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[4]=lresume[0]=gtk_label_new("\n\n\n\n\n");
 | 
				
			||||||
 | 
					  dhw[6]=lresume[1]=gtk_label_new("\n\n\n\n\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<2;i++)
 | 
				
			||||||
 | 
					    gtk_label_set_justify(GTK_LABEL(lresume[i]),GTK_JUSTIFY_LEFT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[4],FALSE,TRUE,4);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[6],FALSE,TRUE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hgraph=dhw[7]=gtk_drawing_area_new();
 | 
				
			||||||
 | 
					  gtk_drawing_area_size(GTK_DRAWING_AREA(dhw[7]),24*9+2,120);
 | 
				
			||||||
 | 
					  gtk_widget_set_events(dhw[7],GDK_EXPOSURE_MASK);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[7],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  wgraph=dhw[8]=gtk_drawing_area_new();
 | 
				
			||||||
 | 
					  gtk_drawing_area_size(GTK_DRAWING_AREA(dhw[8]),7*20+2,120);
 | 
				
			||||||
 | 
					  gtk_widget_set_events(dhw[8],GDK_EXPOSURE_MASK);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[3]),dhw[8],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[11]=gtk_hseparator_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[11],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[9]=gtk_hbox_new(FALSE,2);
 | 
				
			||||||
 | 
					  dhw[10]=gtk_label_new("Raw log listing (unfiltered):");
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[9],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[9]),dhw[10],FALSE,FALSE,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* list */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sw=gtk_scrolled_window_new(NULL,NULL);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),sw,TRUE,TRUE,4);
 | 
				
			||||||
 | 
					  gtk_widget_show(sw);
 | 
				
			||||||
 | 
					  gtk_container_set_border_width(GTK_CONTAINER(sw),0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  loglist=gtk_clist_new(8);
 | 
				
			||||||
 | 
					  gtk_clist_set_shadow_type(GTK_CLIST(loglist),GTK_SHADOW_IN);
 | 
				
			||||||
 | 
					  gtk_clist_set_selection_mode(GTK_CLIST(loglist),GTK_SELECTION_SINGLE);
 | 
				
			||||||
 | 
					  for(i=0;i<8;i++) {
 | 
				
			||||||
 | 
					    gtk_clist_set_column_title(GTK_CLIST(loglist),i,titles[i]);
 | 
				
			||||||
 | 
					    gtk_clist_set_column_width(GTK_CLIST(loglist),i,colsize[i]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  gtk_clist_column_titles_passive(GTK_CLIST(loglist));
 | 
				
			||||||
 | 
					  gtk_clist_column_titles_show(GTK_CLIST(loglist));
 | 
				
			||||||
 | 
					  gtk_clist_set_row_height(GTK_CLIST(loglist),16);
 | 
				
			||||||
 | 
					  gtk_clist_set_column_auto_resize(GTK_CLIST(loglist),1,FALSE);
 | 
				
			||||||
 | 
					  gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
 | 
				
			||||||
 | 
									 GTK_POLICY_AUTOMATIC,
 | 
				
			||||||
 | 
									 GTK_POLICY_ALWAYS);
 | 
				
			||||||
 | 
					  gtk_container_add(GTK_CONTAINER(sw),loglist);
 | 
				
			||||||
 | 
					  gtk_widget_show(loglist);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* bottom */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[18]=gtk_hseparator_new();
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[18],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[19]=gtk_table_new(1,6,TRUE);
 | 
				
			||||||
 | 
					  dhw[21]=gtk_button_new_with_label(" About... ");
 | 
				
			||||||
 | 
					  dhw[22]=gtk_button_new_with_label(" Close ");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dhw[23]=gtk_hbox_new(TRUE,6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(mvb),dhw[19],FALSE,FALSE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_table_attach_defaults(GTK_TABLE(dhw[19]),dhw[23],4,6,0,1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[23]),dhw[21],FALSE,TRUE,4);
 | 
				
			||||||
 | 
					  gtk_box_pack_start(GTK_BOX(dhw[23]),dhw[22],FALSE,TRUE,4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<24;i++)
 | 
				
			||||||
 | 
					    if (i!=20)
 | 
				
			||||||
 | 
					      gtk_widget_show(dhw[i]);
 | 
				
			||||||
 | 
					  gtk_widget_show(dhb);
 | 
				
			||||||
 | 
					  gtk_widget_show(mvb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  iconmap[0] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[0],
 | 
				
			||||||
 | 
										     &style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
										     (gchar **) status_ok_xpm);
 | 
				
			||||||
 | 
					  iconmap[1] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[1],
 | 
				
			||||||
 | 
										     &style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
										     (gchar **) status_error_xpm);
 | 
				
			||||||
 | 
					  iconmap[2] = gdk_pixmap_create_from_xpm_d (applet->window, &maskmap[2],
 | 
				
			||||||
 | 
										     &style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
										     (gchar **) status_crash_xpm);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* signal plumbing */
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (applet), "delete_event",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (applet_kill), NULL);
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (applet), "destroy",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (applet_destroy), NULL);
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (hgraph), "expose_event",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (hgra_expose), NULL);
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (hgraph), "configure_event",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (hgra_configure), NULL);
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (wgraph), "expose_event",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (wgra_expose), NULL);
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (wgraph), "configure_event",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (wgra_configure), NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (dhw[21]), "clicked",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (applet_about),
 | 
				
			||||||
 | 
							      (gpointer)GTK_WINDOW(applet));
 | 
				
			||||||
 | 
					  gtk_signal_connect (GTK_OBJECT (dhw[22]), "clicked",
 | 
				
			||||||
 | 
							      GTK_SIGNAL_FUNC (applet_destroy), NULL);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					load_log(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  char temp[256],aux[256];
 | 
				
			||||||
 | 
					  GList *pt;
 | 
				
			||||||
 | 
					  struct logentry *le;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (users)
 | 
				
			||||||
 | 
					    g_list_free(users);
 | 
				
			||||||
 | 
					  if (isps)
 | 
				
			||||||
 | 
					    g_list_free(isps);
 | 
				
			||||||
 | 
					  users=NULL;
 | 
				
			||||||
 | 
					  isps=NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  users=g_list_append(users,"All users");
 | 
				
			||||||
 | 
					  isps=g_list_append(isps,"All ISPs");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p=getenv("HOME");
 | 
				
			||||||
 | 
					  sprintf(temp,"%s/.yawmppp2/logfile",p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (log)
 | 
				
			||||||
 | 
					    free_log();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  f=fopen(temp,"r");
 | 
				
			||||||
 | 
					  if (!f)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while(fgets(aux,255,f))
 | 
				
			||||||
 | 
					    prepend_log_entry(aux);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(pt=log;pt!=NULL;pt=g_list_next(pt)) {
 | 
				
			||||||
 | 
					    le=(struct logentry *)(pt->data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!already_exists(le->user,users)) {
 | 
				
			||||||
 | 
					      users=g_list_append(users,(gpointer)(le->user));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!already_exists(le->shortname,isps))
 | 
				
			||||||
 | 
					      isps=g_list_append(isps,(gpointer)(le->shortname));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					prepend_log_entry(char *logline)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  struct logentry *le;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  le=(struct logentry *)g_malloc0(sizeof(struct logentry));
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if ((p=strtok(logline,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  le->start=(time_t)atol(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  le->end=(time_t)atol(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  le->status=atoi(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  strncpy(le->longname,p,128);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  strncpy(le->shortname,p,16);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  strncpy(le->phone,p,32);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if ((p=strtok(NULL,"\t\n"))==NULL) { g_free(le); return; }
 | 
				
			||||||
 | 
					  strncpy(le->user,p,32);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  log=g_list_prepend(log,(gpointer)(le));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					free_log(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GList *pt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(pt=log;pt!=NULL;pt=g_list_next(pt))
 | 
				
			||||||
 | 
					    g_free(pt->data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  g_list_free(log);
 | 
				
			||||||
 | 
					  log=NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					update_list(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GList *pt;
 | 
				
			||||||
 | 
					  struct logentry *le;
 | 
				
			||||||
 | 
					  char tmp[8][128];
 | 
				
			||||||
 | 
					  gchar *pp[8];
 | 
				
			||||||
 | 
					  int  ontime,h,m,s,i;
 | 
				
			||||||
 | 
					  int lc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_clist_freeze(GTK_CLIST(loglist));
 | 
				
			||||||
 | 
					  gtk_clist_clear(GTK_CLIST(loglist));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<8;i++)
 | 
				
			||||||
 | 
					    pp[i]=tmp[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(lc=0,pt=log;pt!=NULL;pt=g_list_next(pt),lc++) {
 | 
				
			||||||
 | 
					    le=(struct logentry *)(pt->data);
 | 
				
			||||||
 | 
					    strcpy(tmp[0],ctime(&(le->start)));
 | 
				
			||||||
 | 
					    strcpy(tmp[1],ctime(&(le->end)));
 | 
				
			||||||
 | 
					    ontime=(int)(le->end - le->start);
 | 
				
			||||||
 | 
					    h=ontime/3600;
 | 
				
			||||||
 | 
					    ontime-=3600*h;
 | 
				
			||||||
 | 
					    m=ontime/60;
 | 
				
			||||||
 | 
					    ontime-=60*m;
 | 
				
			||||||
 | 
					    s=ontime;
 | 
				
			||||||
 | 
					    sprintf(tmp[2],"%.4d:%.2d:%.2d",h,m,s);
 | 
				
			||||||
 | 
					    switch(le->status) {
 | 
				
			||||||
 | 
					    case 0:
 | 
				
			||||||
 | 
					      strcpy(tmp[3],"OK");
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case 1:
 | 
				
			||||||
 | 
					      strcpy(tmp[3],"Error");
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      strcpy(tmp[3],"Crash");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    strcpy(tmp[4],le->shortname);
 | 
				
			||||||
 | 
					    strcpy(tmp[5],le->longname);
 | 
				
			||||||
 | 
					    strcpy(tmp[6],le->phone);
 | 
				
			||||||
 | 
					    strcpy(tmp[7],le->user);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gtk_clist_append(GTK_CLIST(loglist),pp);
 | 
				
			||||||
 | 
					    gtk_clist_set_pixtext(GTK_CLIST(loglist),lc,3,
 | 
				
			||||||
 | 
								  tmp[3],6,
 | 
				
			||||||
 | 
								  iconmap[le->status%3],
 | 
				
			||||||
 | 
								  maskmap[le->status%3]);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_clist_thaw(GTK_CLIST(loglist));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint
 | 
				
			||||||
 | 
					applet_kill (GtkWidget * widget, GdkEvent * event, gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return FALSE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					applet_destroy (GtkWidget * widget, gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  gtk_main_quit();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					make_resume(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  static char temp[1024],aux[256];
 | 
				
			||||||
 | 
					  GList *pt;
 | 
				
			||||||
 | 
					  long olt,ldiff,avg,maior,menor;
 | 
				
			||||||
 | 
					  struct logentry *le;
 | 
				
			||||||
 | 
					  int h,m,s,
 | 
				
			||||||
 | 
					      i,n,t,
 | 
				
			||||||
 | 
					      j,o,u,
 | 
				
			||||||
 | 
					      k,p,v;
 | 
				
			||||||
 | 
					  int ec;
 | 
				
			||||||
 | 
					  int sv[3];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<24;i++)
 | 
				
			||||||
 | 
					    hourly[i]=0;
 | 
				
			||||||
 | 
					  for(i=0;i<7;i++)
 | 
				
			||||||
 | 
					    weekly[i]=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strcpy(temp,"Summary:\n\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  olt=0;
 | 
				
			||||||
 | 
					  sv[0]=sv[1]=sv[2]=0;
 | 
				
			||||||
 | 
					  ec=0;
 | 
				
			||||||
 | 
					  maior=0;
 | 
				
			||||||
 | 
					  menor=time(NULL); /* unless you've been wired since
 | 
				
			||||||
 | 
					                       Jan 1 1970 this will work... ;-) */
 | 
				
			||||||
 | 
					  for(pt=log;pt!=NULL;pt=g_list_next(pt)) {
 | 
				
			||||||
 | 
					    le=(struct logentry *)(pt->data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (time_cons[1]!=0)
 | 
				
			||||||
 | 
					      if ((le->end < time_cons[0])||(le->start > time_cons[1]))
 | 
				
			||||||
 | 
						continue;
 | 
				
			||||||
 | 
					    if (useridx)
 | 
				
			||||||
 | 
					      if (strcmp((char *)(g_list_nth_data(users,useridx)),le->user))
 | 
				
			||||||
 | 
						continue;
 | 
				
			||||||
 | 
					    if (ispidx)
 | 
				
			||||||
 | 
					      if (strcmp((char *)(g_list_nth_data(isps,ispidx)),le->shortname))
 | 
				
			||||||
 | 
						continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ec++;
 | 
				
			||||||
 | 
					    ldiff=(le->end - le->start);
 | 
				
			||||||
 | 
					    olt+=ldiff;
 | 
				
			||||||
 | 
					    sv[le->status]++;
 | 
				
			||||||
 | 
					    add_hourly(le->start,le->end);
 | 
				
			||||||
 | 
					    add_weekly(le->start,le->end);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ldiff>maior)
 | 
				
			||||||
 | 
					      maior=ldiff;
 | 
				
			||||||
 | 
					    if (ldiff<menor)
 | 
				
			||||||
 | 
					      menor=ldiff;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sprintf(aux,"Connections: %d\n"\
 | 
				
			||||||
 | 
						      "Disconnected OK: %d\n"\
 | 
				
			||||||
 | 
						      "Disconnected Error: %d\n"\
 | 
				
			||||||
 | 
					              "Disconnected Crash: %d\n",ec,sv[0],sv[1],sv[2]);
 | 
				
			||||||
 | 
					  strcat(temp,aux);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_label_set_text(GTK_LABEL(lresume[0]),temp);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (ec)
 | 
				
			||||||
 | 
					    avg=olt/ec;
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    avg=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  h=olt/3600;
 | 
				
			||||||
 | 
					  olt-=3600*h;
 | 
				
			||||||
 | 
					  m=olt/60;
 | 
				
			||||||
 | 
					  olt-=60*m;
 | 
				
			||||||
 | 
					  s=olt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  i=avg/3600;
 | 
				
			||||||
 | 
					  avg-=3600*i;
 | 
				
			||||||
 | 
					  n=avg/60;
 | 
				
			||||||
 | 
					  avg-=60*n;
 | 
				
			||||||
 | 
					  t=avg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  j=maior/3600;
 | 
				
			||||||
 | 
					  maior-=3600*j;
 | 
				
			||||||
 | 
					  o=maior/60;
 | 
				
			||||||
 | 
					  maior-=60*o;
 | 
				
			||||||
 | 
					  u=maior;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  k=menor/3600;
 | 
				
			||||||
 | 
					  menor-=3600*k;
 | 
				
			||||||
 | 
					  p=menor/60;
 | 
				
			||||||
 | 
					  menor-=60*p;
 | 
				
			||||||
 | 
					  v=menor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  strcpy(temp,"\n\n");
 | 
				
			||||||
 | 
					  sprintf(aux,"Online time: %.4d:%.2d:%.2d\n"\
 | 
				
			||||||
 | 
						  "Average connection length: %.4d:%.2d:%.2d\n"\
 | 
				
			||||||
 | 
					          "Longer connection: %.4d:%.2d:%.2d\n"\
 | 
				
			||||||
 | 
					          "Shorter connection: %.4d:%.2d:%.2d\n",
 | 
				
			||||||
 | 
						  h,m,s,
 | 
				
			||||||
 | 
						  i,n,t,
 | 
				
			||||||
 | 
						  j,o,u,
 | 
				
			||||||
 | 
						  k,p,v);
 | 
				
			||||||
 | 
					  strcat(temp,aux);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_label_set_text(GTK_LABEL(lresume[1]),temp);
 | 
				
			||||||
 | 
					  gtk_widget_queue_resize(hgraph);
 | 
				
			||||||
 | 
					  gtk_widget_queue_resize(wgraph);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					add_hourly(long s,long e)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t t;
 | 
				
			||||||
 | 
					  struct tm *st;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(t=s;t<=e;t+=30) {
 | 
				
			||||||
 | 
					    st=localtime(&t);
 | 
				
			||||||
 | 
					    if (!st)
 | 
				
			||||||
 | 
					      exit(2);
 | 
				
			||||||
 | 
					    hourly[st->tm_hour]++;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					add_weekly(long s,long e)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t t;
 | 
				
			||||||
 | 
					  struct tm *st;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(t=s;t<=e;t+=30) {
 | 
				
			||||||
 | 
					    st=localtime(&t);
 | 
				
			||||||
 | 
					    if (!st)
 | 
				
			||||||
 | 
					      exit(2);
 | 
				
			||||||
 | 
					    weekly[st->tm_wday]++;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint
 | 
				
			||||||
 | 
					hgra_expose(GtkWidget *widget,GdkEventExpose *ee,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  gdk_draw_pixmap(widget->window,
 | 
				
			||||||
 | 
							  widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
 | 
				
			||||||
 | 
							  hcanvas,
 | 
				
			||||||
 | 
							  ee->area.x, ee->area.y,
 | 
				
			||||||
 | 
							  ee->area.x, ee->area.y,
 | 
				
			||||||
 | 
							  ee->area.width, ee->area.height);
 | 
				
			||||||
 | 
					  return FALSE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint
 | 
				
			||||||
 | 
					hgra_configure(GtkWidget *widget,GdkEventConfigure *ee,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GdkGC *mygc;
 | 
				
			||||||
 | 
					  int x,y,cx,xs;
 | 
				
			||||||
 | 
					  int i,v;
 | 
				
			||||||
 | 
					  long max;
 | 
				
			||||||
 | 
					  float fac;
 | 
				
			||||||
 | 
					  GdkFont *fn;
 | 
				
			||||||
 | 
					  char tmp[64];
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (hcanvas!=NULL)
 | 
				
			||||||
 | 
					    gdk_pixmap_unref(hcanvas);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  mygc=gdk_gc_new(widget->window);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  hcanvas=gdk_pixmap_new(widget->window,x=widget->allocation.width,
 | 
				
			||||||
 | 
								 y=widget->allocation.height,-1);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(hcanvas,widget->style->white_gc,TRUE,0,0,x,y);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(hcanvas,widget->style->black_gc,FALSE,0,0,x-1,y-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  max=0;
 | 
				
			||||||
 | 
					  for(i=0;i<24;i++)
 | 
				
			||||||
 | 
					    if (hourly[i]>max)
 | 
				
			||||||
 | 
					      max=hourly[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (max==0) max=1;
 | 
				
			||||||
 | 
					  fac=((float)(y-18-16))/((float)max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cx=1;
 | 
				
			||||||
 | 
					  xs=(x-2)/24;
 | 
				
			||||||
 | 
					  fn=gdk_font_load("-*-helvetica-medium-r-*-*-8-*-*-*-*-*-*-*");
 | 
				
			||||||
 | 
					  for (i=0;i<24;i++) {
 | 
				
			||||||
 | 
					    v=(int)(((float)hourly[i])*fac);
 | 
				
			||||||
 | 
					    gdk_rgb_gc_set_foreground(mygc,0xc0c0c0);
 | 
				
			||||||
 | 
					    gdk_draw_line(hcanvas,mygc,cx,1,cx,y-2);
 | 
				
			||||||
 | 
					    gdk_rgb_gc_set_foreground(mygc,0x004080);
 | 
				
			||||||
 | 
					    gdk_draw_rectangle(hcanvas,mygc,TRUE,cx,y-18-v,xs,v);
 | 
				
			||||||
 | 
					    cx+=xs;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_rgb_gc_set_foreground(mygc,0x000000);
 | 
				
			||||||
 | 
					  for(cx=1,i=0;i<24;i+=2) {
 | 
				
			||||||
 | 
					    sprintf(tmp,"%2d",i);
 | 
				
			||||||
 | 
					    gdk_draw_string(hcanvas,fn,mygc,cx,y-6,tmp);
 | 
				
			||||||
 | 
					    cx+=2*xs;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_draw_line(hcanvas,widget->style->black_gc,0,y-18,x-1,y-18);  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_rgb_gc_set_foreground(mygc,0xffffff);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(hcanvas,mygc,TRUE,0,0,22*4,13);
 | 
				
			||||||
 | 
					  gdk_rgb_gc_set_foreground(mygc,0x000000);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(hcanvas,mygc,FALSE,0,0,22*4,13);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_font_unref(fn);
 | 
				
			||||||
 | 
					  fn=gdk_font_load("-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_draw_string(hcanvas,fn,mygc,5,10,"hourly summary");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_font_unref(fn);
 | 
				
			||||||
 | 
					  gdk_gc_destroy(mygc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return FALSE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint
 | 
				
			||||||
 | 
					wgra_expose(GtkWidget *widget,GdkEventExpose *ee,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  gdk_draw_pixmap(widget->window,
 | 
				
			||||||
 | 
							  widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
 | 
				
			||||||
 | 
							  wcanvas,
 | 
				
			||||||
 | 
							  ee->area.x, ee->area.y,
 | 
				
			||||||
 | 
							  ee->area.x, ee->area.y,
 | 
				
			||||||
 | 
							  ee->area.width, ee->area.height);
 | 
				
			||||||
 | 
					  return FALSE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint
 | 
				
			||||||
 | 
					wgra_configure(GtkWidget *widget,GdkEventConfigure *ee,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GdkGC *mygc;
 | 
				
			||||||
 | 
					  int x,y,cx,xs;
 | 
				
			||||||
 | 
					  int i,v;
 | 
				
			||||||
 | 
					  long max;
 | 
				
			||||||
 | 
					  float fac;
 | 
				
			||||||
 | 
					  GdkFont *fn;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (wcanvas!=NULL)
 | 
				
			||||||
 | 
					    gdk_pixmap_unref(wcanvas);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  mygc=gdk_gc_new(widget->window);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  wcanvas=gdk_pixmap_new(widget->window,x=widget->allocation.width,
 | 
				
			||||||
 | 
								 y=widget->allocation.height,-1);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(wcanvas,widget->style->white_gc,TRUE,0,0,x,y);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(wcanvas,widget->style->black_gc,FALSE,0,0,x-1,y-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  max=0;
 | 
				
			||||||
 | 
					  for(i=0;i<7;i++)
 | 
				
			||||||
 | 
					    if (weekly[i]>max)
 | 
				
			||||||
 | 
					      max=weekly[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!max) max=1;
 | 
				
			||||||
 | 
					  fac=((float)(y-18-16))/((float)max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cx=1;
 | 
				
			||||||
 | 
					  xs=(x-2)/7;
 | 
				
			||||||
 | 
					  fn=gdk_font_load("-*-helvetica-medium-r-*-*-8-*-*-*-*-*-*-*");
 | 
				
			||||||
 | 
					  for (i=0;i<7;i++) {
 | 
				
			||||||
 | 
					    v=(int)(((float)weekly[i])*fac);
 | 
				
			||||||
 | 
					    gdk_rgb_gc_set_foreground(mygc,0xc0c0c0);
 | 
				
			||||||
 | 
					    gdk_draw_line(wcanvas,mygc,cx,1,cx,y-2);
 | 
				
			||||||
 | 
					    gdk_rgb_gc_set_foreground(mygc,0x004080);
 | 
				
			||||||
 | 
					    gdk_draw_rectangle(wcanvas,mygc,TRUE,cx,y-18-v,xs,v);
 | 
				
			||||||
 | 
					    gdk_rgb_gc_set_foreground(mygc,0x000000);
 | 
				
			||||||
 | 
					    gdk_draw_string(wcanvas,fn,mygc,cx,y-6,wdays[i]);
 | 
				
			||||||
 | 
					    cx+=xs;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_draw_line(wcanvas,widget->style->black_gc,0,y-18,x-1,y-18);  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_rgb_gc_set_foreground(mygc,0xffffff);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(wcanvas,mygc,TRUE,0,0,23*4,13);
 | 
				
			||||||
 | 
					  gdk_rgb_gc_set_foreground(mygc,0x000000);
 | 
				
			||||||
 | 
					  gdk_draw_rectangle(wcanvas,mygc,FALSE,0,0,23*4,13);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_font_unref(fn);
 | 
				
			||||||
 | 
					  fn=gdk_font_load("-*-helvetica-medium-r-*-*-10-*-*-*-*-*-*-*");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_draw_string(wcanvas,fn,mygc,5,10,"weekday summary");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gdk_font_unref(fn);
 | 
				
			||||||
 | 
					  gdk_gc_destroy(mygc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return FALSE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					time_menu(GtkMenuItem *gmi,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int x;
 | 
				
			||||||
 | 
					  struct tm *his;
 | 
				
			||||||
 | 
					  time_t t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  x=*((int *)data);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  t=time(NULL);
 | 
				
			||||||
 | 
					  his=localtime(&t);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch(x) {
 | 
				
			||||||
 | 
					  case 0: /* all */
 | 
				
			||||||
 | 
					    time_cons[0]=time_cons[1]=0;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 1: /* today */
 | 
				
			||||||
 | 
					    his->tm_sec=0;
 | 
				
			||||||
 | 
					    his->tm_min=0;
 | 
				
			||||||
 | 
					    his->tm_hour=0;
 | 
				
			||||||
 | 
					    time_cons[0]=mktime(his);
 | 
				
			||||||
 | 
					    his->tm_sec=59;
 | 
				
			||||||
 | 
					    his->tm_min=59;
 | 
				
			||||||
 | 
					    his->tm_hour=23;
 | 
				
			||||||
 | 
					    time_cons[1]=mktime(his);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 2: /* yesterday */
 | 
				
			||||||
 | 
					    t-=24*3600;
 | 
				
			||||||
 | 
					    his=localtime(&t);
 | 
				
			||||||
 | 
					    his->tm_sec=0;
 | 
				
			||||||
 | 
					    his->tm_min=0;
 | 
				
			||||||
 | 
					    his->tm_hour=0;
 | 
				
			||||||
 | 
					    time_cons[0]=mktime(his);
 | 
				
			||||||
 | 
					    his->tm_sec=59;
 | 
				
			||||||
 | 
					    his->tm_min=59;
 | 
				
			||||||
 | 
					    his->tm_hour=23;
 | 
				
			||||||
 | 
					    time_cons[1]=mktime(his);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 3: /* this week */
 | 
				
			||||||
 | 
					    t-=((long)(24*3600))*((long)(his->tm_wday));
 | 
				
			||||||
 | 
					    his=localtime(&t);
 | 
				
			||||||
 | 
					    his->tm_sec=0;
 | 
				
			||||||
 | 
					    his->tm_min=0;
 | 
				
			||||||
 | 
					    his->tm_hour=0;
 | 
				
			||||||
 | 
					    time_cons[0]=mktime(his);
 | 
				
			||||||
 | 
					    time_cons[1]=time(NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 4: /* this month */
 | 
				
			||||||
 | 
					    t-=((long)(24*3600))*((long)(his->tm_mday));
 | 
				
			||||||
 | 
					    his=localtime(&t);
 | 
				
			||||||
 | 
					    his->tm_sec=0;
 | 
				
			||||||
 | 
					    his->tm_min=0;
 | 
				
			||||||
 | 
					    his->tm_hour=0;
 | 
				
			||||||
 | 
					    time_cons[0]=mktime(his);
 | 
				
			||||||
 | 
					    time_cons[1]=time(NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 5: /* this year */
 | 
				
			||||||
 | 
					    t-=((long)(24*3600))*((long)(his->tm_yday));
 | 
				
			||||||
 | 
					    his=localtime(&t);
 | 
				
			||||||
 | 
					    his->tm_sec=0;
 | 
				
			||||||
 | 
					    his->tm_min=0;
 | 
				
			||||||
 | 
					    his->tm_hour=0;
 | 
				
			||||||
 | 
					    time_cons[0]=mktime(his);
 | 
				
			||||||
 | 
					    time_cons[1]=time(NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 6: /* Last 24 hours */
 | 
				
			||||||
 | 
					    time_cons[0]=t-24*3600;
 | 
				
			||||||
 | 
					    time_cons[1]=t;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 7: /* Last 7 days */
 | 
				
			||||||
 | 
					    time_cons[0]=t-7*24*3600;
 | 
				
			||||||
 | 
					    time_cons[1]=t;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 8: /* Last 30 days */
 | 
				
			||||||
 | 
					    time_cons[0]=t-30*24*3600;
 | 
				
			||||||
 | 
					    time_cons[1]=t;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case 9:
 | 
				
			||||||
 | 
					    time_cons[0]=t-365*24*3600;
 | 
				
			||||||
 | 
					    time_cons[1]=t;
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  default:
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  make_resume();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					user_menu(GtkMenuItem *gmi,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  useridx=*((int *)data);
 | 
				
			||||||
 | 
					  make_resume();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					isp_menu(GtkMenuItem *gmi,gpointer data)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  ispidx=*((int *)data);
 | 
				
			||||||
 | 
					  make_resume();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					already_exists(char *s,GList *pt)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GList *w;
 | 
				
			||||||
 | 
					  for(w=pt;w!=NULL;w=g_list_next(w)) {
 | 
				
			||||||
 | 
					    if (!strcmp((char *)(w->data),s))
 | 
				
			||||||
 | 
					      return 1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								yawmppp/src/gtklog/loglist.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								yawmppp/src/gtklog/loglist.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef LOGLIST_H
 | 
				
			||||||
 | 
					#define LOGLIST_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void create_loglist(void);
 | 
				
			||||||
 | 
					void load_log(void);
 | 
				
			||||||
 | 
					void prepend_log_entry(char *);
 | 
				
			||||||
 | 
					void free_log(void);
 | 
				
			||||||
 | 
					void update_list(void);
 | 
				
			||||||
 | 
					void make_resume(void);
 | 
				
			||||||
 | 
					void add_hourly(long s,long e);
 | 
				
			||||||
 | 
					void add_weekly(long s,long e);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint applet_kill (GtkWidget * widget, GdkEvent * event, gpointer data);
 | 
				
			||||||
 | 
					void applet_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void time_menu(GtkMenuItem *gmi,gpointer data);
 | 
				
			||||||
 | 
					void user_menu(GtkMenuItem *gmi,gpointer data);
 | 
				
			||||||
 | 
					void isp_menu(GtkMenuItem *gmi,gpointer data);
 | 
				
			||||||
 | 
					int already_exists(char *s,GList *pt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint hgra_expose(GtkWidget *,GdkEventExpose *,gpointer);
 | 
				
			||||||
 | 
					gint hgra_configure(GtkWidget *,GdkEventConfigure *,gpointer);
 | 
				
			||||||
 | 
					gint wgra_expose(GtkWidget *,GdkEventExpose *,gpointer);
 | 
				
			||||||
 | 
					gint wgra_configure(GtkWidget *,GdkEventConfigure *,gpointer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct logentry {
 | 
				
			||||||
 | 
					  time_t start;
 | 
				
			||||||
 | 
					  time_t end;
 | 
				
			||||||
 | 
					  int    status; /* 0=ok 1=error 2=crash */
 | 
				
			||||||
 | 
					  char   longname[128];
 | 
				
			||||||
 | 
					  char   shortname[16];
 | 
				
			||||||
 | 
					  char   phone[32];
 | 
				
			||||||
 | 
					  char   user[32];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										64
									
								
								yawmppp/src/gtklog/status_crash.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								yawmppp/src/gtklog/status_crash.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * status_crash_xpm[] = {
 | 
				
			||||||
 | 
					"16 16 45 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #FF8A3D",
 | 
				
			||||||
 | 
					"@	c #FFE43A",
 | 
				
			||||||
 | 
					"#	c #FFEBD1",
 | 
				
			||||||
 | 
					"$	c #080808",
 | 
				
			||||||
 | 
					"%	c #484848",
 | 
				
			||||||
 | 
					"&	c #585858",
 | 
				
			||||||
 | 
					"*	c #545454",
 | 
				
			||||||
 | 
					"=	c #474747",
 | 
				
			||||||
 | 
					"-	c #292929",
 | 
				
			||||||
 | 
					";	c #606060",
 | 
				
			||||||
 | 
					">	c #6D6D6D",
 | 
				
			||||||
 | 
					",	c #737373",
 | 
				
			||||||
 | 
					"'	c #5D5D5D",
 | 
				
			||||||
 | 
					")	c #2B2B2B",
 | 
				
			||||||
 | 
					"!	c #181818",
 | 
				
			||||||
 | 
					"~	c #111111",
 | 
				
			||||||
 | 
					"{	c #575757",
 | 
				
			||||||
 | 
					"]	c #828282",
 | 
				
			||||||
 | 
					"^	c #8D8D8D",
 | 
				
			||||||
 | 
					"/	c #060606",
 | 
				
			||||||
 | 
					"(	c #0D0D0D",
 | 
				
			||||||
 | 
					"_	c #404040",
 | 
				
			||||||
 | 
					":	c #595959",
 | 
				
			||||||
 | 
					"<	c #A7A7A7",
 | 
				
			||||||
 | 
					"[	c #3F3F3F",
 | 
				
			||||||
 | 
					"}	c #242424",
 | 
				
			||||||
 | 
					"|	c #0A0A0A",
 | 
				
			||||||
 | 
					"1	c #0C0C0C",
 | 
				
			||||||
 | 
					"2	c #3D3D3D",
 | 
				
			||||||
 | 
					"3	c #555555",
 | 
				
			||||||
 | 
					"4	c #3B3B3B",
 | 
				
			||||||
 | 
					"5	c #222222",
 | 
				
			||||||
 | 
					"6	c #323232",
 | 
				
			||||||
 | 
					"7	c #494949",
 | 
				
			||||||
 | 
					"8	c #1A1A1A",
 | 
				
			||||||
 | 
					"9	c #020202",
 | 
				
			||||||
 | 
					"0	c #252525",
 | 
				
			||||||
 | 
					"a	c #383838",
 | 
				
			||||||
 | 
					"b	c #0F0F0F",
 | 
				
			||||||
 | 
					"c	c #171717",
 | 
				
			||||||
 | 
					"d	c #131313",
 | 
				
			||||||
 | 
					"e	c #030303",
 | 
				
			||||||
 | 
					"f	c #010101",
 | 
				
			||||||
 | 
					"        .+..@.  ",
 | 
				
			||||||
 | 
					"        .@+.++. ",
 | 
				
			||||||
 | 
					"       .++.#..  ",
 | 
				
			||||||
 | 
					"    ....@.#.++. ",
 | 
				
			||||||
 | 
					"   $%&*=@.#.@@. ",
 | 
				
			||||||
 | 
					" .-;>,>')#)!..  ",
 | 
				
			||||||
 | 
					" ~{>]^]>)))/(   ",
 | 
				
			||||||
 | 
					"._:,^<^,:[}|1.  ",
 | 
				
			||||||
 | 
					".23>]^]>345$..  ",
 | 
				
			||||||
 | 
					".67'>,>'7689..  ",
 | 
				
			||||||
 | 
					".0a73:37a}b...  ",
 | 
				
			||||||
 | 
					".c}64[46}d..e.  ",
 | 
				
			||||||
 | 
					" 9b85}58b...f   ",
 | 
				
			||||||
 | 
					" .f9$|$9.....   ",
 | 
				
			||||||
 | 
					"   ........     ",
 | 
				
			||||||
 | 
					"    ......      "};
 | 
				
			||||||
							
								
								
									
										124
									
								
								yawmppp/src/gtklog/status_error.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								yawmppp/src/gtklog/status_error.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,124 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * status_error_xpm[] = {
 | 
				
			||||||
 | 
					"16 16 105 2",
 | 
				
			||||||
 | 
					"  	c None",
 | 
				
			||||||
 | 
					". 	c #000000",
 | 
				
			||||||
 | 
					"+ 	c #B81818",
 | 
				
			||||||
 | 
					"@ 	c #B61818",
 | 
				
			||||||
 | 
					"# 	c #AD1514",
 | 
				
			||||||
 | 
					"$ 	c #A11111",
 | 
				
			||||||
 | 
					"% 	c #920B0B",
 | 
				
			||||||
 | 
					"& 	c #7E0504",
 | 
				
			||||||
 | 
					"* 	c #B91819",
 | 
				
			||||||
 | 
					"= 	c #B9191B",
 | 
				
			||||||
 | 
					"- 	c #B51A1B",
 | 
				
			||||||
 | 
					"; 	c #C21D1C",
 | 
				
			||||||
 | 
					"> 	c #C21A1B",
 | 
				
			||||||
 | 
					", 	c #B51718",
 | 
				
			||||||
 | 
					"' 	c #9B0E0E",
 | 
				
			||||||
 | 
					") 	c #7E0505",
 | 
				
			||||||
 | 
					"! 	c #6F0204",
 | 
				
			||||||
 | 
					"~ 	c #B21717",
 | 
				
			||||||
 | 
					"{ 	c #B41919",
 | 
				
			||||||
 | 
					"] 	c #952A2A",
 | 
				
			||||||
 | 
					"^ 	c #B37575",
 | 
				
			||||||
 | 
					"/ 	c #971C1C",
 | 
				
			||||||
 | 
					"( 	c #BF1D1C",
 | 
				
			||||||
 | 
					"_ 	c #B81718",
 | 
				
			||||||
 | 
					": 	c #880E0E",
 | 
				
			||||||
 | 
					"< 	c #824040",
 | 
				
			||||||
 | 
					"[ 	c #5C1617",
 | 
				
			||||||
 | 
					"} 	c #620204",
 | 
				
			||||||
 | 
					"| 	c #B71819",
 | 
				
			||||||
 | 
					"1 	c #A21819",
 | 
				
			||||||
 | 
					"2 	c #DBC6C4",
 | 
				
			||||||
 | 
					"3 	c #FEFEFC",
 | 
				
			||||||
 | 
					"4 	c #CDACAB",
 | 
				
			||||||
 | 
					"5 	c #901414",
 | 
				
			||||||
 | 
					"6 	c #955959",
 | 
				
			||||||
 | 
					"7 	c #CFC1C0",
 | 
				
			||||||
 | 
					"8 	c #550204",
 | 
				
			||||||
 | 
					"9 	c #6D0204",
 | 
				
			||||||
 | 
					"0 	c #A21110",
 | 
				
			||||||
 | 
					"a 	c #BB1819",
 | 
				
			||||||
 | 
					"b 	c #B11C1C",
 | 
				
			||||||
 | 
					"c 	c #994948",
 | 
				
			||||||
 | 
					"d 	c #F2EBEA",
 | 
				
			||||||
 | 
					"e 	c #F8F4F3",
 | 
				
			||||||
 | 
					"f 	c #9B5F5F",
 | 
				
			||||||
 | 
					"g 	c #7C3333",
 | 
				
			||||||
 | 
					"h 	c #F7F4F2",
 | 
				
			||||||
 | 
					"i 	c #764849",
 | 
				
			||||||
 | 
					"j 	c #5C0204",
 | 
				
			||||||
 | 
					"k 	c #710204",
 | 
				
			||||||
 | 
					"l 	c #9C0F0F",
 | 
				
			||||||
 | 
					"m 	c #C31D1B",
 | 
				
			||||||
 | 
					"n 	c #A01C1C",
 | 
				
			||||||
 | 
					"o 	c #B88786",
 | 
				
			||||||
 | 
					"p 	c #E3D7D5",
 | 
				
			||||||
 | 
					"q 	c #A17B7B",
 | 
				
			||||||
 | 
					"r 	c #5B0204",
 | 
				
			||||||
 | 
					"s 	c #6B0204",
 | 
				
			||||||
 | 
					"t 	c #930C0B",
 | 
				
			||||||
 | 
					"u 	c #AA1414",
 | 
				
			||||||
 | 
					"v 	c #BA191A",
 | 
				
			||||||
 | 
					"w 	c #B51A1A",
 | 
				
			||||||
 | 
					"x 	c #7F1414",
 | 
				
			||||||
 | 
					"y 	c #CAB0AF",
 | 
				
			||||||
 | 
					"z 	c #BFADAC",
 | 
				
			||||||
 | 
					"A 	c #550405",
 | 
				
			||||||
 | 
					"B 	c #850707",
 | 
				
			||||||
 | 
					"C 	c #990E0E",
 | 
				
			||||||
 | 
					"D 	c #A51212",
 | 
				
			||||||
 | 
					"E 	c #9A1111",
 | 
				
			||||||
 | 
					"F 	c #77201F",
 | 
				
			||||||
 | 
					"G 	c #DED5D4",
 | 
				
			||||||
 | 
					"H 	c #571617",
 | 
				
			||||||
 | 
					"I 	c #600204",
 | 
				
			||||||
 | 
					"J 	c #6C0204",
 | 
				
			||||||
 | 
					"K 	c #790304",
 | 
				
			||||||
 | 
					"L 	c #840706",
 | 
				
			||||||
 | 
					"M 	c #890808",
 | 
				
			||||||
 | 
					"N 	c #6D0909",
 | 
				
			||||||
 | 
					"O 	c #B2908F",
 | 
				
			||||||
 | 
					"P 	c #C5B7B6",
 | 
				
			||||||
 | 
					"Q 	c #4A0204",
 | 
				
			||||||
 | 
					"R 	c #660204",
 | 
				
			||||||
 | 
					"S 	c #6E0204",
 | 
				
			||||||
 | 
					"T 	c #750304",
 | 
				
			||||||
 | 
					"U 	c #977171",
 | 
				
			||||||
 | 
					"V 	c #E6DFDE",
 | 
				
			||||||
 | 
					"W 	c #501617",
 | 
				
			||||||
 | 
					"X 	c #D6CBCA",
 | 
				
			||||||
 | 
					"Y 	c #A08584",
 | 
				
			||||||
 | 
					"Z 	c #510204",
 | 
				
			||||||
 | 
					"` 	c #680204",
 | 
				
			||||||
 | 
					" .	c #530204",
 | 
				
			||||||
 | 
					"..	c #7C5253",
 | 
				
			||||||
 | 
					"+.	c #5A0204",
 | 
				
			||||||
 | 
					"@.	c #6D3E3F",
 | 
				
			||||||
 | 
					"#.	c #642A2B",
 | 
				
			||||||
 | 
					"$.	c #650204",
 | 
				
			||||||
 | 
					"%.	c #703E3F",
 | 
				
			||||||
 | 
					"&.	c #560204",
 | 
				
			||||||
 | 
					"*.	c #690204",
 | 
				
			||||||
 | 
					"=.	c #570204",
 | 
				
			||||||
 | 
					"-.	c #6E3E3F",
 | 
				
			||||||
 | 
					";.	c #630204",
 | 
				
			||||||
 | 
					">.	c #640204",
 | 
				
			||||||
 | 
					"          . . . . . .           ",
 | 
				
			||||||
 | 
					"      . . + @ # $ % & . .       ",
 | 
				
			||||||
 | 
					"    . * = - ; > , ' ) ! ! .     ",
 | 
				
			||||||
 | 
					"  . ~ { ] ^ / ( _ : < [ } ! .   ",
 | 
				
			||||||
 | 
					"  . | 1 2 3 4 / 5 6 3 7 8 9 .   ",
 | 
				
			||||||
 | 
					". 0 a b c d e f g h 3 i j ! k . ",
 | 
				
			||||||
 | 
					". l @ m n o 3 3 p 3 q r s k k . ",
 | 
				
			||||||
 | 
					". t u v w x y 3 3 z A s ! k k . ",
 | 
				
			||||||
 | 
					". B C D E F p 3 3 G H I J ! k . ",
 | 
				
			||||||
 | 
					". K L M N O 3 G G 3 P Q R k S . ",
 | 
				
			||||||
 | 
					". k T } U 3 V W W X 3 Y Z ` k . ",
 | 
				
			||||||
 | 
					"  . S  .7 3 ..8 +.@.3 3 #.$..   ",
 | 
				
			||||||
 | 
					"  . ! } H %.&.s *.=.-.-.+.J .   ",
 | 
				
			||||||
 | 
					"    . ! R ;.9 k k J >.>.s .     ",
 | 
				
			||||||
 | 
					"      . . k k S k k k . .       ",
 | 
				
			||||||
 | 
					"          . . . . . .           "};
 | 
				
			||||||
							
								
								
									
										23
									
								
								yawmppp/src/gtklog/status_ok.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								yawmppp/src/gtklog/status_ok.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * status_ok_xpm[] = {
 | 
				
			||||||
 | 
					"16 16 4 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #7FDB82",
 | 
				
			||||||
 | 
					"@	c #1CA525",
 | 
				
			||||||
 | 
					"              . ",
 | 
				
			||||||
 | 
					"             .+.",
 | 
				
			||||||
 | 
					"            .+@.",
 | 
				
			||||||
 | 
					"            .+@.",
 | 
				
			||||||
 | 
					"           .+@. ",
 | 
				
			||||||
 | 
					"           .+@. ",
 | 
				
			||||||
 | 
					"   .      .+@.  ",
 | 
				
			||||||
 | 
					"  .+.     .+@.  ",
 | 
				
			||||||
 | 
					" .+@@.   .+@.   ",
 | 
				
			||||||
 | 
					"  .@@@.  .+@.   ",
 | 
				
			||||||
 | 
					"   .@@@..+@.    ",
 | 
				
			||||||
 | 
					"    .@@@+@@.    ",
 | 
				
			||||||
 | 
					"     .@@@@.     ",
 | 
				
			||||||
 | 
					"      .@@@.     ",
 | 
				
			||||||
 | 
					"       .@.      ",
 | 
				
			||||||
 | 
					"        .       "};
 | 
				
			||||||
							
								
								
									
										37
									
								
								yawmppp/src/gtksetup/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								yawmppp/src/gtksetup/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# gtksetup: a setup applet for yawmppp
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					CFLAGS = -Wall -O2
 | 
				
			||||||
 | 
					GTKLIB = @GTK_LIBS@
 | 
				
			||||||
 | 
					GTKFLAG = @GTK_FLAGS@
 | 
				
			||||||
 | 
					RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\" -DIPREFIX=\"@prefix@\" -D@SYSDEF@
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ALLDOTOS = applet.o msgbox.o
 | 
				
			||||||
 | 
					ALLDOTHS = applet.h msgbox.h ../isprc.h
 | 
				
			||||||
 | 
					EOBJS = ../isprc.o ../about.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build_gtksetup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_gtksetup: $(ALLDOTOS)
 | 
				
			||||||
 | 
						$(CC) $(ALLDOTOS) $(EOBJS) -o yawmppp.pref $(GTKLIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(ALLDOTOS): %.o : %.c $(ALLDOTHS)
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) $(RLFLAG) $(GTKFLAG) -I.. -c $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 yawmppp.pref @prefix@/bin/yawmppp.pref
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 pppdoc.xpm @prefix@/share/icons/pppdoc.xpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						$(PROGINST) -s -m 0755 yawmppp.pref @prefix@/bin/yawmppp.pref
 | 
				
			||||||
 | 
						$(PROGINST) -m 0644 pppdoc.xpm @prefix@/share/icons/pppdoc.xpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm -f $(ALLDOTOS) yawmppp.pref
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						rm -f Makefile *~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										2858
									
								
								yawmppp/src/gtksetup/applet.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2858
									
								
								yawmppp/src/gtksetup/applet.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										182
									
								
								yawmppp/src/gtksetup/applet.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										182
									
								
								yawmppp/src/gtksetup/applet.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,182 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef YAWMPPP_APPLET_H
 | 
				
			||||||
 | 
					#define YAWMPPP_APPLET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					#include "isprc.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* not less than the dock applet */
 | 
				
			||||||
 | 
					#define MAX_ISPS 40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_MAX_ISPS   "You can't have more than 40 entries."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_CANT_MKDIR "Unable to create directory ~/.yawmppp\n"\
 | 
				
			||||||
 | 
					                       "Current configuration could not be\n"\
 | 
				
			||||||
 | 
							       "written."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_CANT_WRITE "Unable to create configuration files\n"\
 | 
				
			||||||
 | 
					                       "in directory ~/.yawmppp. Current configuration\n"\
 | 
				
			||||||
 | 
							       "may not have been only partially written."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_DIDNT_WRITE "There were errors when saving the configuration.\n"\
 | 
				
			||||||
 | 
							        "Do you still wish to close wmppp.pref and [maybe] lose\n"\
 | 
				
			||||||
 | 
							        "current data ?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define INFO_CANT_APPLY_NOW "The dock applet will update itself only when\n"\
 | 
				
			||||||
 | 
							            "the current connection is over."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_CANT_SU "Script didn't run properly. Bad password ?"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX_EXPECT_PAIRS 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct PREF_ISP_INFO {
 | 
				
			||||||
 | 
					  char LongName[128];
 | 
				
			||||||
 | 
					  char ShortName[16];
 | 
				
			||||||
 | 
					  char Device[64];
 | 
				
			||||||
 | 
					  char Username[32];
 | 
				
			||||||
 | 
					  char Password[32];
 | 
				
			||||||
 | 
					  char Phone[32];
 | 
				
			||||||
 | 
					  char ModemInit1[256];
 | 
				
			||||||
 | 
					  char ModemInit2[256];
 | 
				
			||||||
 | 
					  char UserString[32];
 | 
				
			||||||
 | 
					  char PassString[32];
 | 
				
			||||||
 | 
					  char PulseDial[8];
 | 
				
			||||||
 | 
					  char ModemSpeed[16];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* appended in 1.1.0 */
 | 
				
			||||||
 | 
					  int  nExpectPairs;
 | 
				
			||||||
 | 
					  char s_expect[MAX_EXPECT_PAIRS][32];
 | 
				
			||||||
 | 
					  char s_send[MAX_EXPECT_PAIRS][32];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct ISP_PPP ppp; /* defined in ../isprc.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* appended in 1.1.2 */
 | 
				
			||||||
 | 
					  int nologin;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct PREF_PPP_OPT {
 | 
				
			||||||
 | 
					  int defaultroute;
 | 
				
			||||||
 | 
					  int lock;
 | 
				
			||||||
 | 
					  int passive;
 | 
				
			||||||
 | 
					  int debug;
 | 
				
			||||||
 | 
					  int kdebug;
 | 
				
			||||||
 | 
					  int noauth;
 | 
				
			||||||
 | 
					  int noipdefault;
 | 
				
			||||||
 | 
					  int linectl;        /* 0=modem 1=local */
 | 
				
			||||||
 | 
					  int flowctl;        /* 0=crtscts 1=xonxoff 2=nocrtscts 3=DC */
 | 
				
			||||||
 | 
					  int mtu;
 | 
				
			||||||
 | 
					  int mru;
 | 
				
			||||||
 | 
					  int lcp[5];         /* in the same order as in the dialog */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int chap;
 | 
				
			||||||
 | 
					  int pap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int usepeerdns;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void create_preferences_panel(void);
 | 
				
			||||||
 | 
					void clear_and_disable_right_pane(void);
 | 
				
			||||||
 | 
					void load_rc_entries(void);
 | 
				
			||||||
 | 
					void update_right_pane(void);
 | 
				
			||||||
 | 
					void commit_back_to_db(void);
 | 
				
			||||||
 | 
					void fill_list(void);
 | 
				
			||||||
 | 
					int  write_and_apply_data(void);
 | 
				
			||||||
 | 
					void check_client(void);
 | 
				
			||||||
 | 
					int file_exists(char *s);
 | 
				
			||||||
 | 
					void find_out_paths(void);
 | 
				
			||||||
 | 
					void test_set_path(char *,char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void xlate_ppp_to_pref(struct YAWMPPP_ISP_INFO *wii,
 | 
				
			||||||
 | 
							       struct PREF_ISP_INFO  *pii);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GtkWidget *hlabel_new(char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GtkWidget *make_ppp_pane(void);
 | 
				
			||||||
 | 
					void get_ppp_pane(void);
 | 
				
			||||||
 | 
					void set_ppp_pane(void);
 | 
				
			||||||
 | 
					char *mk_ppp_string(struct PREF_PPP_OPT *modi,char *sep);
 | 
				
			||||||
 | 
					void read_ppp_options_from_rc(char *p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *wrapped_strtok(char *a,char *b);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint applet_kill (GtkWidget * widget, GdkEvent * event, gpointer data);
 | 
				
			||||||
 | 
					void applet_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void applet_apply (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void applet_save_and_quit (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void list_select(GtkCList *cl,gint row,gint column,
 | 
				
			||||||
 | 
							 GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					void list_unselect(GtkCList *cl,gint row,gint column,
 | 
				
			||||||
 | 
							   GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void list_moveup(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void list_movedown(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void list_remove(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void list_duplicate(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void list_add(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* more settings dialog */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void pop_advanced(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void adv_ok (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void adv_cancel (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void adv_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void enable_local_ppp(gboolean e);
 | 
				
			||||||
 | 
					void ppp_override_toggle(GtkToggleButton *gtb,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* more settings dialog */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void isp_rename(GtkEditable *ge,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void make_ppp_default(GtkWidget *w,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* expect/send */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void pop_expect(GtkWidget *w,gpointer data);
 | 
				
			||||||
 | 
					void exp_ok (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void exp_cancel (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void exp_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void exp_update(void);
 | 
				
			||||||
 | 
					void exp_up(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					void exp_down(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					void exp_disable(void);
 | 
				
			||||||
 | 
					void exp_enable(void);
 | 
				
			||||||
 | 
					void exp_select(GtkCList *cl,gint row,gint column,
 | 
				
			||||||
 | 
							GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					void exp_unselect(GtkCList *cl,gint row,gint column,
 | 
				
			||||||
 | 
							  GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					void exp_add_delay(void);
 | 
				
			||||||
 | 
					void exp_remove(void);
 | 
				
			||||||
 | 
					void exp_add(void);
 | 
				
			||||||
 | 
					void expa_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void expa_ok (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void expa_cancel (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* expect/send */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void extract_delimited_string(char *dest,char *src,int count,char delim,int max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* help */
 | 
				
			||||||
 | 
					void pop_help (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void help_dead (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void help_die (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void unman(char *s);
 | 
				
			||||||
 | 
					void add_man(char *manpage,GtkWidget *text,int index);
 | 
				
			||||||
 | 
					void add_docfile(char *source,GtkWidget *text,int index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* misc */
 | 
				
			||||||
 | 
					void run_as_root(char *what);
 | 
				
			||||||
 | 
					gint pwd_kill (GtkWidget * widget, GdkEvent * event, gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void pwd_cancel(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void pwd_ok(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					void pwd_view(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void spwd_destroy (GtkWidget * widget, gpointer data);
 | 
				
			||||||
 | 
					void spwd_close(GtkWidget *gw,gpointer data);
 | 
				
			||||||
 | 
					int try_run_script(char *cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										100
									
								
								yawmppp/src/gtksetup/bong.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								yawmppp/src/gtksetup/bong.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * bong_xpm[] = {
 | 
				
			||||||
 | 
					"64 64 33 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020204",
 | 
				
			||||||
 | 
					"+	c #FEFEFC",
 | 
				
			||||||
 | 
					"@	c #710204",
 | 
				
			||||||
 | 
					"#	c #A21213",
 | 
				
			||||||
 | 
					"$	c #6E1414",
 | 
				
			||||||
 | 
					"%	c #B9191A",
 | 
				
			||||||
 | 
					"&	c #3C0204",
 | 
				
			||||||
 | 
					"*	c #891514",
 | 
				
			||||||
 | 
					"=	c #550304",
 | 
				
			||||||
 | 
					"-	c #8A090A",
 | 
				
			||||||
 | 
					";	c #A31D1D",
 | 
				
			||||||
 | 
					">	c #661719",
 | 
				
			||||||
 | 
					",	c #570B0C",
 | 
				
			||||||
 | 
					"'	c #8A1C1C",
 | 
				
			||||||
 | 
					")	c #801514",
 | 
				
			||||||
 | 
					"!	c #7E0504",
 | 
				
			||||||
 | 
					"~	c #BB1E1D",
 | 
				
			||||||
 | 
					"{	c #320204",
 | 
				
			||||||
 | 
					"]	c #4A0304",
 | 
				
			||||||
 | 
					"^	c #6C0C0C",
 | 
				
			||||||
 | 
					"/	c #711B1C",
 | 
				
			||||||
 | 
					"(	c #AE1614",
 | 
				
			||||||
 | 
					"_	c #970D0C",
 | 
				
			||||||
 | 
					":	c #AF1B1C",
 | 
				
			||||||
 | 
					"<	c #7E1D1C",
 | 
				
			||||||
 | 
					"[	c #7D0C0C",
 | 
				
			||||||
 | 
					"}	c #C51E1C",
 | 
				
			||||||
 | 
					"|	c #971414",
 | 
				
			||||||
 | 
					"1	c #620204",
 | 
				
			||||||
 | 
					"2	c #600D0C",
 | 
				
			||||||
 | 
					"3	c #971C1C",
 | 
				
			||||||
 | 
					"4	c #C41A1C",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                            ........                            ",
 | 
				
			||||||
 | 
					"                        ....#____--!....                        ",
 | 
				
			||||||
 | 
					"                      ..(((#((#_#_--!!@@..                      ",
 | 
				
			||||||
 | 
					"                     .(%(%%%%(((##__-!!!@!.                     ",
 | 
				
			||||||
 | 
					"                   ..(%%4%4%4%%((##__-!!@@@..                   ",
 | 
				
			||||||
 | 
					"                  .(%%44%44}}4%4%((__-!!@@@@@.                  ",
 | 
				
			||||||
 | 
					"                 .(%%%%%%:%}}4}4%%##_-!@@@@@@@.                 ",
 | 
				
			||||||
 | 
					"                .#(%4%::33;;}}4444(_-!@111@1@@@.                ",
 | 
				
			||||||
 | 
					"                .(%%%(|'$/<';~}}4%#_[2=]]=11@@@.                ",
 | 
				
			||||||
 | 
					"               .((%%%;'$+++/<;~}4(#)2]++&]=11@@!.               ",
 | 
				
			||||||
 | 
					"              ._(%(%:*$+++++/<;~~|*^,++++&]=@1@@@.              ",
 | 
				
			||||||
 | 
					"              ._(%%%:*+++++++<3;||^,++++++]=1@@@@.              ",
 | 
				
			||||||
 | 
					"             ._#(%%%:3/++++++//')$2++++++&]=@@@@@@.             ",
 | 
				
			||||||
 | 
					"             .__(%4%~;'/++++++>$^2++++++&]=11@@@@@.             ",
 | 
				
			||||||
 | 
					"             ._#((44~:3</++++++2,,++++++&]=1@@@@@@.             ",
 | 
				
			||||||
 | 
					"             ._##%%}}};'/+++++++,++++++]=111@@@@@@.             ",
 | 
				
			||||||
 | 
					"            .--_#(%%}}~;'/++++++++++++]]=1@@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .-__#((%4}}%3)>++++++++++]]1@11@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .--__#(%%}~%#*$2++++++++&,=1@@@@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .!--_#(#%%%%;*2,++++++++&]=@@1@@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .!!-__##(%(#|)2,++++++++&]==@@@@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .@!!-__#####[^]++++++++++&]==11@1@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .@@!!-_____[^2++++++++++++{]=11@@@@@@@@.            ",
 | 
				
			||||||
 | 
					"            .@@!!!---_[^=]+++++++++++++{]=11@@@1@@@.            ",
 | 
				
			||||||
 | 
					"             .@@!!!!!!^1]++++++&&++++++{&=11@@@@@@.             ",
 | 
				
			||||||
 | 
					"             .@@@!!!@1=]++++++&&&&++++++&&]=11@@@@.             ",
 | 
				
			||||||
 | 
					"             .@@@@@@1=&++++++&&]]&&++++++&]=11@@@@.             ",
 | 
				
			||||||
 | 
					"             .@@@@@1=]&++++++&]==]&{++++++&]11@@@@.             ",
 | 
				
			||||||
 | 
					"              .@@@@1=&++++++&]==1=]&+++++++]=1@@@.              ",
 | 
				
			||||||
 | 
					"              .@@@@11]&++++&&]11@1=]{+++++{]=@1@@.              ",
 | 
				
			||||||
 | 
					"               .@@@11=&&++{]==1@111]]{+++{]=11@@.               ",
 | 
				
			||||||
 | 
					"                .@@@11=]&&]]=1@@@@11]]&&&]]11@@.                ",
 | 
				
			||||||
 | 
					"                .@@@@11====1@@@@@@@11=]]]=1@@@@.                ",
 | 
				
			||||||
 | 
					"                 .@@@@11111@1@@@@@@@11111111@@.                 ",
 | 
				
			||||||
 | 
					"                  .@@@@@@@1@@@@@@@@@@@@@@@@@@.                  ",
 | 
				
			||||||
 | 
					"                   ..@@@@@@@@@@@@@@@@@@@@@@..                   ",
 | 
				
			||||||
 | 
					"                     .@@@@@@@@1@@@@@@@@@@@.                     ",
 | 
				
			||||||
 | 
					"                      ..@@@@@@@@@@@@@@@@..                      ",
 | 
				
			||||||
 | 
					"                        ....@@@@1@@@....                        ",
 | 
				
			||||||
 | 
					"                            ........                            ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										26
									
								
								yawmppp/src/gtksetup/cmd_del.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								yawmppp/src/gtksetup/cmd_del.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,26 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * cmd_del_xpm[] = {
 | 
				
			||||||
 | 
					"20 20 3 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #7B7D7B",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"     .+       .+    ",
 | 
				
			||||||
 | 
					"    ...+     ...+   ",
 | 
				
			||||||
 | 
					"     ...+   ...+    ",
 | 
				
			||||||
 | 
					"      ...+ ...+     ",
 | 
				
			||||||
 | 
					"       ......+      ",
 | 
				
			||||||
 | 
					"        ....+       ",
 | 
				
			||||||
 | 
					"        ....+       ",
 | 
				
			||||||
 | 
					"       ......+      ",
 | 
				
			||||||
 | 
					"      ...++...+     ",
 | 
				
			||||||
 | 
					"     ...+   ...+    ",
 | 
				
			||||||
 | 
					"    ...+     ...+   ",
 | 
				
			||||||
 | 
					"     .+       .+    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    "};
 | 
				
			||||||
							
								
								
									
										13
									
								
								yawmppp/src/gtksetup/cmd_down.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								yawmppp/src/gtksetup/cmd_down.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * cmd_down_xpm[] = {
 | 
				
			||||||
 | 
					"13 7 3 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #7B7D7B",
 | 
				
			||||||
 | 
					"............+",
 | 
				
			||||||
 | 
					" ..........+ ",
 | 
				
			||||||
 | 
					"  ........+  ",
 | 
				
			||||||
 | 
					"   ......+   ",
 | 
				
			||||||
 | 
					"    ....+    ",
 | 
				
			||||||
 | 
					"     ..+     ",
 | 
				
			||||||
 | 
					"      +      "};
 | 
				
			||||||
							
								
								
									
										27
									
								
								yawmppp/src/gtksetup/cmd_dup.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								yawmppp/src/gtksetup/cmd_dup.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * cmd_dup_xpm[] = {
 | 
				
			||||||
 | 
					"20 20 4 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #FFFFFF",
 | 
				
			||||||
 | 
					"@	c #7B7D7B",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"       ......       ",
 | 
				
			||||||
 | 
					"      ..++++.       ",
 | 
				
			||||||
 | 
					"     .+.++++.@      ",
 | 
				
			||||||
 | 
					"    .++.++++....    ",
 | 
				
			||||||
 | 
					"   .....++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   .++++++++.++.@   ",
 | 
				
			||||||
 | 
					"   ..........++.@   ",
 | 
				
			||||||
 | 
					"    @@.++++++++.@   ",
 | 
				
			||||||
 | 
					"      .++++++++.@   ",
 | 
				
			||||||
 | 
					"      ..........@   ",
 | 
				
			||||||
 | 
					"       @@@@@@@@@@   ",
 | 
				
			||||||
 | 
					"                    "};
 | 
				
			||||||
							
								
								
									
										27
									
								
								yawmppp/src/gtksetup/cmd_new.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								yawmppp/src/gtksetup/cmd_new.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * cmd_new_xpm[] = {
 | 
				
			||||||
 | 
					"20 20 4 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #FFFFFF",
 | 
				
			||||||
 | 
					"@	c #7B7D7B",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"         ......     ",
 | 
				
			||||||
 | 
					"        ..++++.@    ",
 | 
				
			||||||
 | 
					"       .+.++++.@    ",
 | 
				
			||||||
 | 
					"      .++.++++.@    ",
 | 
				
			||||||
 | 
					"     .....++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     .++++++++.@    ",
 | 
				
			||||||
 | 
					"     ..........@    ",
 | 
				
			||||||
 | 
					"      @@@@@@@@@@    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    ",
 | 
				
			||||||
 | 
					"                    "};
 | 
				
			||||||
							
								
								
									
										13
									
								
								yawmppp/src/gtksetup/cmd_up.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								yawmppp/src/gtksetup/cmd_up.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * cmd_up_xpm[] = {
 | 
				
			||||||
 | 
					"13 7 3 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #000000",
 | 
				
			||||||
 | 
					"+	c #7B7D7B",
 | 
				
			||||||
 | 
					"     ..      ",
 | 
				
			||||||
 | 
					"    ....+    ",
 | 
				
			||||||
 | 
					"   ......+   ",
 | 
				
			||||||
 | 
					"  ........+  ",
 | 
				
			||||||
 | 
					" ..........+ ",
 | 
				
			||||||
 | 
					"............+",
 | 
				
			||||||
 | 
					" ++++++++++++"};
 | 
				
			||||||
							
								
								
									
										132
									
								
								yawmppp/src/gtksetup/exclam.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								yawmppp/src/gtksetup/exclam.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,132 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * exclam_xpm[] = {
 | 
				
			||||||
 | 
					"64 64 65 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020204",
 | 
				
			||||||
 | 
					"+	c #958204",
 | 
				
			||||||
 | 
					"@	c #C6C604",
 | 
				
			||||||
 | 
					"#	c #EAE604",
 | 
				
			||||||
 | 
					"$	c #4E4204",
 | 
				
			||||||
 | 
					"%	c #AAA604",
 | 
				
			||||||
 | 
					"&	c #E7C704",
 | 
				
			||||||
 | 
					"*	c #282204",
 | 
				
			||||||
 | 
					"=	c #CDB304",
 | 
				
			||||||
 | 
					"-	c #E8D604",
 | 
				
			||||||
 | 
					";	c #F5F504",
 | 
				
			||||||
 | 
					">	c #A89204",
 | 
				
			||||||
 | 
					",	c #6A6204",
 | 
				
			||||||
 | 
					"'	c #D8D504",
 | 
				
			||||||
 | 
					")	c #C1A504",
 | 
				
			||||||
 | 
					"!	c #383304",
 | 
				
			||||||
 | 
					"~	c #727204",
 | 
				
			||||||
 | 
					"{	c #EEEA04",
 | 
				
			||||||
 | 
					"]	c #FAD904",
 | 
				
			||||||
 | 
					"^	c #141204",
 | 
				
			||||||
 | 
					"/	c #D5BB04",
 | 
				
			||||||
 | 
					"(	c #A28E04",
 | 
				
			||||||
 | 
					"_	c #EDCE04",
 | 
				
			||||||
 | 
					":	c #E0C204",
 | 
				
			||||||
 | 
					"<	c #B19A04",
 | 
				
			||||||
 | 
					"[	c #3C3C04",
 | 
				
			||||||
 | 
					"}	c #B9A204",
 | 
				
			||||||
 | 
					"|	c #FEFD04",
 | 
				
			||||||
 | 
					"1	c #C5AB04",
 | 
				
			||||||
 | 
					"2	c #8C7904",
 | 
				
			||||||
 | 
					"3	c #FAE404",
 | 
				
			||||||
 | 
					"4	c #302C04",
 | 
				
			||||||
 | 
					"5	c #F2DE04",
 | 
				
			||||||
 | 
					"6	c #565204",
 | 
				
			||||||
 | 
					"7	c #7C6B04",
 | 
				
			||||||
 | 
					"8	c #6E5E04",
 | 
				
			||||||
 | 
					"9	c #201C04",
 | 
				
			||||||
 | 
					"0	c #DEDC04",
 | 
				
			||||||
 | 
					"a	c #DFCB04",
 | 
				
			||||||
 | 
					"b	c #937E04",
 | 
				
			||||||
 | 
					"c	c #FEEB04",
 | 
				
			||||||
 | 
					"d	c #0D0A04",
 | 
				
			||||||
 | 
					"e	c #8E8A04",
 | 
				
			||||||
 | 
					"f	c #DDBE04",
 | 
				
			||||||
 | 
					"g	c #F4D104",
 | 
				
			||||||
 | 
					"h	c #B79C04",
 | 
				
			||||||
 | 
					"i	c #CECE04",
 | 
				
			||||||
 | 
					"j	c #AAAA04",
 | 
				
			||||||
 | 
					"k	c #FADE04",
 | 
				
			||||||
 | 
					"l	c #8E7E04",
 | 
				
			||||||
 | 
					"m	c #BAAA04",
 | 
				
			||||||
 | 
					"n	c #F1D804",
 | 
				
			||||||
 | 
					"o	c #FEF304",
 | 
				
			||||||
 | 
					"p	c #E2D204",
 | 
				
			||||||
 | 
					"q	c #463E04",
 | 
				
			||||||
 | 
					"r	c #625204",
 | 
				
			||||||
 | 
					"s	c #9A8604",
 | 
				
			||||||
 | 
					"t	c #B2A204",
 | 
				
			||||||
 | 
					"u	c #EECA04",
 | 
				
			||||||
 | 
					"v	c #2E2604",
 | 
				
			||||||
 | 
					"w	c #D2B504",
 | 
				
			||||||
 | 
					"x	c #AE9604",
 | 
				
			||||||
 | 
					"y	c #726304",
 | 
				
			||||||
 | 
					"z	c #3E3604",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                              0s                                ",
 | 
				
			||||||
 | 
					"                              ',                                ",
 | 
				
			||||||
 | 
					"                             #'}l                               ",
 | 
				
			||||||
 | 
					"                             {a/(4                              ",
 | 
				
			||||||
 | 
					"                            ;;'=}4                              ",
 | 
				
			||||||
 | 
					"                            |5-/mb*                             ",
 | 
				
			||||||
 | 
					"                           ||3na1hv                             ",
 | 
				
			||||||
 | 
					"                          ||35n_/1+y                            ",
 | 
				
			||||||
 | 
					"                          |co||#_=}s*                           ",
 | 
				
			||||||
 | 
					"                         |||@!..!>)<*                           ",
 | 
				
			||||||
 | 
					"                         |c|9....^}hb9                          ",
 | 
				
			||||||
 | 
					"                        ||cj......y1hv                          ",
 | 
				
			||||||
 | 
					"                        |c3j......8=1sy                         ",
 | 
				
			||||||
 | 
					"                       ||33|......>/=}+*                        ",
 | 
				
			||||||
 | 
					"                       |33]c......xuf1h*                        ",
 | 
				
			||||||
 | 
					"                      ||33536....!)g&=}b9                       ",
 | 
				
			||||||
 | 
					"                      |c3k]3~....$fguf1h4                       ",
 | 
				
			||||||
 | 
					"                     ||33]]k%....y:]g&w)+y                      ",
 | 
				
			||||||
 | 
					"                     |c3k]]]@....2_]gg:=}s*                     ",
 | 
				
			||||||
 | 
					"                    ||3k]]]]c....x_]]guf1<9                     ",
 | 
				
			||||||
 | 
					"                   ||33k]]]]c!..9)]]]]g&wh29                    ",
 | 
				
			||||||
 | 
					"                   |c33k]]]]c6..!w]]g]guf1>9                    ",
 | 
				
			||||||
 | 
					"                  ||33]]g]]]3e..r:]]]]gg&=h29                   ",
 | 
				
			||||||
 | 
					"                  |33k]]]]g]]%..y&]]]]]gu:1hv                   ",
 | 
				
			||||||
 | 
					"                 ||ckk]]]]]]]|..xg]]]]]]g&/)sy                  ",
 | 
				
			||||||
 | 
					"                 |335]]]]]]]]39^h]]g]]]]g_&=}+*                 ",
 | 
				
			||||||
 | 
					"                ||33]]g]]]g]]kh21]]]g]]]]guf1h*                 ",
 | 
				
			||||||
 | 
					"                |c3k]]]]g]]]||jtk]]]]]g]]ng&=}b9                ",
 | 
				
			||||||
 | 
					"               ||3k]]]]]]]]|j...9sg]]]]]]]guf1h4                ",
 | 
				
			||||||
 | 
					"               |c33]]]]]]]]|9....^w]]]]]g]gg&w)+y               ",
 | 
				
			||||||
 | 
					"              ||3k]]]g]]]]]c......h]]g]]]]]gu&=}s*              ",
 | 
				
			||||||
 | 
					"              |c3k]]]]]g]]]]8....q1]]]]]]]]]guf1h*              ",
 | 
				
			||||||
 | 
					"             |;35]]g]g]]]]]]_2!!y):]]]]g]]]]g_&=hb9             ",
 | 
				
			||||||
 | 
					"            ;;5nngggggggggg__ufwf&ggggggg_gg_u:/)xv             ",
 | 
				
			||||||
 | 
					"            {-aa&::ffffff:::ff::f:ffff::ffff:f/=}x28            ",
 | 
				
			||||||
 | 
					"           0'/=m1))))111)))1)))))))))1)1111))))hx(279           ",
 | 
				
			||||||
 | 
					"           im%<>(>((>(((((((>((>(((>>(((((((((((sb27^           ",
 | 
				
			||||||
 | 
					"          0[!*^...................................ddd.          ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										100
									
								
								yawmppp/src/gtksetup/info.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								yawmppp/src/gtksetup/info.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * info_xpm[] = {
 | 
				
			||||||
 | 
					"64 64 33 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020208",
 | 
				
			||||||
 | 
					"+	c #8E8E91",
 | 
				
			||||||
 | 
					"@	c #56565B",
 | 
				
			||||||
 | 
					"#	c #3A3A3F",
 | 
				
			||||||
 | 
					"$	c #06025F",
 | 
				
			||||||
 | 
					"%	c #0A068F",
 | 
				
			||||||
 | 
					"&	c #1E1E25",
 | 
				
			||||||
 | 
					"*	c #040237",
 | 
				
			||||||
 | 
					"=	c #0A0A71",
 | 
				
			||||||
 | 
					"-	c #050250",
 | 
				
			||||||
 | 
					";	c #090677",
 | 
				
			||||||
 | 
					">	c #0E0EA9",
 | 
				
			||||||
 | 
					",	c #0A069C",
 | 
				
			||||||
 | 
					"'	c #E2E2E4",
 | 
				
			||||||
 | 
					")	c #09065F",
 | 
				
			||||||
 | 
					"!	c #060641",
 | 
				
			||||||
 | 
					"~	c #030223",
 | 
				
			||||||
 | 
					"{	c #C6C6C7",
 | 
				
			||||||
 | 
					"]	c #72727E",
 | 
				
			||||||
 | 
					"^	c #AAAAAD",
 | 
				
			||||||
 | 
					"/	c #FEFEFC",
 | 
				
			||||||
 | 
					"(	c #1E1E3C",
 | 
				
			||||||
 | 
					"_	c #0A0654",
 | 
				
			||||||
 | 
					":	c #0C0A80",
 | 
				
			||||||
 | 
					"<	c #0E0A8F",
 | 
				
			||||||
 | 
					"[	c #06064F",
 | 
				
			||||||
 | 
					"}	c #0D0A9D",
 | 
				
			||||||
 | 
					"|	c #56566A",
 | 
				
			||||||
 | 
					"1	c #3A3A54",
 | 
				
			||||||
 | 
					"2	c #040244",
 | 
				
			||||||
 | 
					"3	c #0A0684",
 | 
				
			||||||
 | 
					"4	c #09066C",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"            .......................................             ",
 | 
				
			||||||
 | 
					"            .}}}}}}}}}}}}}}}},,%333%%,,}}}}}}}}}}}.             ",
 | 
				
			||||||
 | 
					"            .>>>>>>>>>>>>>>>}}:;)));:}}}>>>>>>>>>>.             ",
 | 
				
			||||||
 | 
					"            .}>>>>>>>>>>>>>,,%)[*~*2$3,,>>>>>>>>}}.             ",
 | 
				
			||||||
 | 
					"            .>,>,>,>,>,>,>},<4!({/'|!)<,,>,>,>}>}>.             ",
 | 
				
			||||||
 | 
					"            .>}}>}>}>}>}>}},:-~'////(-:,,}>}>}>}}}.             ",
 | 
				
			||||||
 | 
					"            .}}}}}}}}}}}}},%;[|/////|!;%,}}}}}}}}}.             ",
 | 
				
			||||||
 | 
					"            .>><}<}}}<}}<}<342|/////12=%<}<}}<}>><.             ",
 | 
				
			||||||
 | 
					"            .<<<}<<<<<}<><%:;[~'///^~_;<%}<<}<<<<<.             ",
 | 
				
			||||||
 | 
					"            .<<}<<}<<<<<<<%3;[!(+^]~2);%<<<<<><<<<.             ",
 | 
				
			||||||
 | 
					"            .<<<<<<<<<<<:%3;;)-*~~*2);;3<<<<:<<:<:.             ",
 | 
				
			||||||
 | 
					"            .:<<:<<<<::<;;;4[[2**~*[);3:<:<<<:::<:.             ",
 | 
				
			||||||
 | 
					"            .:::::::::3;;$[-2~~~~~*-$;;::<=:3:::3;.             ",
 | 
				
			||||||
 | 
					"            .=::::=:::;;;[2~~&@^'/]!$;;:::::33:::;.             ",
 | 
				
			||||||
 | 
					"            .:==:=:::=3$[-]^'/////|*)$;=;3===:;=:=.             ",
 | 
				
			||||||
 | 
					"            .;;;;;;4;;;$)!////////&*[$;==;;:==;;=;.             ",
 | 
				
			||||||
 | 
					"            .=========$)$*~|+'////.~$$$;;==4;;==4=.             ",
 | 
				
			||||||
 | 
					"            .)4444444=$4$[~..^///^~*[44=)4===44=4).             ",
 | 
				
			||||||
 | 
					"            .44))4)=444$[-*~.////^.*-$44)=))_==)4).             ",
 | 
				
			||||||
 | 
					"            .=====)=)=)$$$*~&////@~*-$)=_4)4)))==).             ",
 | 
				
			||||||
 | 
					"            .____)))[)))[-*~@////#~!--=))_)=)))))[.             ",
 | 
				
			||||||
 | 
					"            ._)))[)))[))-2~.+////.~*--))))_)_)_))).             ",
 | 
				
			||||||
 | 
					"            .)___)[)[)[--2*.^///'.~2--____)___)[[[.             ",
 | 
				
			||||||
 | 
					"            .[[[[[[[)[[--*~.////^.~*--[[[[[[[[[_[[.             ",
 | 
				
			||||||
 | 
					"            .[[[[[[[[[--2~~&////]~~*-[[[[-[[[[_[--.             ",
 | 
				
			||||||
 | 
					"            .--[-[2[[[!-*~~@////@.**2[[[[[[[2-!_!-.             ",
 | 
				
			||||||
 | 
					"            .!!2!!!!2!!2*~.+////&~~***!!!22!!!2!!!.             ",
 | 
				
			||||||
 | 
					"            .!!!2!2!22*2*~.^////..~**2*2!!2!!!22!*.             ",
 | 
				
			||||||
 | 
					"            .***!*!*!!**~~./////..~~~*****!*2*!!*!.             ",
 | 
				
			||||||
 | 
					"            .!!*!*!*****~~./////&..~~~~***!!!**!**.             ",
 | 
				
			||||||
 | 
					"            .*~!~**~***~~../////{@@^+~~**~*~*~!**~.             ",
 | 
				
			||||||
 | 
					"            .~*~!~!~!~~*~~.'////////+~~~~**~!~~!~*.             ",
 | 
				
			||||||
 | 
					"            .*~~~!~~~*~~~~.@/////{+#.~~~~~~!~~~~!~.             ",
 | 
				
			||||||
 | 
					"            .~~~~~~~~~~~~~...@@#...~.~~~~~~~~~~~~~.             ",
 | 
				
			||||||
 | 
					"            .~~~~~~~~~~~~~~~......~.~~~~~~~~~~~~~~.             ",
 | 
				
			||||||
 | 
					"            .~~~~~~~~~~~.~.~.~.~.~.~.~~~~~~~~~~~.~.             ",
 | 
				
			||||||
 | 
					"            .~.~.~.~~.~.~~.~.~.~.~.~.~.~.~.~.~.~~..             ",
 | 
				
			||||||
 | 
					"            .......................................             ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										188
									
								
								yawmppp/src/gtksetup/msgbox.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								yawmppp/src/gtksetup/msgbox.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,188 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Message Box Composite Widget
 | 
				
			||||||
 | 
					    (currently included in various software packages)
 | 
				
			||||||
 | 
					    Copyright (C) 1999-2000 Felipe Paulo Guazzi Bergo
 | 
				
			||||||
 | 
					    bergo@seul.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    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 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, write to the Free Software
 | 
				
			||||||
 | 
					    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					#include "msgbox.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "bong.xpm"
 | 
				
			||||||
 | 
					#include "exclam.xpm"
 | 
				
			||||||
 | 
					#include "info.xpm"
 | 
				
			||||||
 | 
					#include "question.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PRIVATE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void message_box_click_yes(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					void message_box_click_no(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					void message_box_click_cancel(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					void message_box_click_ok(GtkWidget *widget,gpointer data);
 | 
				
			||||||
 | 
					gint immortal(GtkWidget *widget,GdkEvent *event,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct msgbox_data {
 | 
				
			||||||
 | 
					  gint         answer_available;
 | 
				
			||||||
 | 
					  MsgBoxResult answer;
 | 
				
			||||||
 | 
					} cmdata;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gchar ** mb_icons[5]={NULL,bong_xpm,info_xpm,exclam_xpm,question_xpm};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MsgBoxResult
 | 
				
			||||||
 | 
					message_box(GtkWindow *parent,char *txt,char *title,MsgBoxType mbt,MsgBoxIcon mbi)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GtkWidget *msgbox,*b[3],*lb,*tbl,*hs;
 | 
				
			||||||
 | 
					  GdkBitmap *mask;
 | 
				
			||||||
 | 
					  GdkPixmap *dqmark;
 | 
				
			||||||
 | 
					  GtkWidget *tqmark;
 | 
				
			||||||
 | 
					  GtkStyle *style;
 | 
				
			||||||
 | 
					  int i,nb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cmdata.answer_available=FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msgbox=gtk_window_new(GTK_WINDOW_DIALOG);
 | 
				
			||||||
 | 
					  tbl=gtk_table_new(3,4,FALSE);
 | 
				
			||||||
 | 
					  gtk_container_add(GTK_CONTAINER(msgbox),tbl);
 | 
				
			||||||
 | 
					  gtk_window_set_title(GTK_WINDOW(msgbox),title);
 | 
				
			||||||
 | 
					  if (parent!=NULL)
 | 
				
			||||||
 | 
					    gtk_window_set_transient_for(GTK_WINDOW(msgbox),parent);
 | 
				
			||||||
 | 
					  gtk_container_set_border_width(GTK_CONTAINER(msgbox),4);
 | 
				
			||||||
 | 
					  gtk_window_set_position(GTK_WINDOW(msgbox),GTK_WIN_POS_CENTER);
 | 
				
			||||||
 | 
					  gtk_window_set_policy(GTK_WINDOW(msgbox),TRUE,TRUE,TRUE);
 | 
				
			||||||
 | 
					  gtk_widget_realize(msgbox); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  style=gtk_widget_get_style(msgbox);
 | 
				
			||||||
 | 
					  if (mbi!=MSGBOX_ICON_NONE) {
 | 
				
			||||||
 | 
					    dqmark=gdk_pixmap_create_from_xpm_d(msgbox->window,&mask,
 | 
				
			||||||
 | 
										&style->bg[GTK_STATE_NORMAL],
 | 
				
			||||||
 | 
										mb_icons[mbi]);
 | 
				
			||||||
 | 
					    tqmark=gtk_pixmap_new(dqmark,mask);
 | 
				
			||||||
 | 
					    gtk_table_attach(GTK_TABLE(tbl),tqmark,0,1,0,1,GTK_FILL,GTK_FILL,5,5);
 | 
				
			||||||
 | 
					    gtk_widget_show(tqmark);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  lb=gtk_label_new(txt);
 | 
				
			||||||
 | 
					  gtk_label_set_justify(GTK_LABEL(lb),GTK_JUSTIFY_LEFT);
 | 
				
			||||||
 | 
					  gtk_table_attach(GTK_TABLE(tbl),lb,1,4,0,1,GTK_FILL,GTK_FILL,10,10);
 | 
				
			||||||
 | 
					  gtk_widget_show(lb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  hs=gtk_hseparator_new();
 | 
				
			||||||
 | 
					  gtk_table_attach(GTK_TABLE(tbl),hs,0,4,1,2,GTK_FILL,GTK_FILL,0,10);
 | 
				
			||||||
 | 
					  gtk_widget_show(hs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* buttons */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  switch(mbt) {
 | 
				
			||||||
 | 
					  case MSGBOX_OK:
 | 
				
			||||||
 | 
					    nb=1;
 | 
				
			||||||
 | 
					    b[0]=gtk_button_new_with_label("OK");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[0]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_ok),NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case MSGBOX_OKCANCEL:
 | 
				
			||||||
 | 
					    nb=2;
 | 
				
			||||||
 | 
					    b[0]=gtk_button_new_with_label("OK");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[0]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_ok),NULL);
 | 
				
			||||||
 | 
					    b[1]=gtk_button_new_with_label("Cancel");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[1]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_cancel),NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case MSGBOX_YESNO:
 | 
				
			||||||
 | 
					    nb=2;
 | 
				
			||||||
 | 
					    b[0]=gtk_button_new_with_label("Yes");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[0]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_yes),NULL);
 | 
				
			||||||
 | 
					    b[1]=gtk_button_new_with_label("No");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[1]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_no),NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case MSGBOX_YESNOCANCEL:
 | 
				
			||||||
 | 
					    nb=3;
 | 
				
			||||||
 | 
					    b[0]=gtk_button_new_with_label("Yes");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[0]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_yes),NULL);
 | 
				
			||||||
 | 
					    b[1]=gtk_button_new_with_label("No");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[1]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_no),NULL);
 | 
				
			||||||
 | 
					    b[2]=gtk_button_new_with_label("Cancel");
 | 
				
			||||||
 | 
					    gtk_signal_connect(GTK_OBJECT(b[2]),"clicked",
 | 
				
			||||||
 | 
							       GTK_SIGNAL_FUNC(message_box_click_cancel),NULL);
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  default:
 | 
				
			||||||
 | 
					    nb=0;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<nb;i++)
 | 
				
			||||||
 | 
					    gtk_table_attach(GTK_TABLE(tbl),b[i],
 | 
				
			||||||
 | 
							     4-nb+i,4-nb+i+1,
 | 
				
			||||||
 | 
							     2,3,
 | 
				
			||||||
 | 
							     GTK_FILL,
 | 
				
			||||||
 | 
							     (i?GTK_SHRINK:GTK_FILL),2,2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  GTK_WIDGET_SET_FLAGS(b[0],GTK_CAN_DEFAULT);
 | 
				
			||||||
 | 
					  gtk_widget_grab_default(b[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for(i=0;i<nb;i++)
 | 
				
			||||||
 | 
					    gtk_widget_show(b[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_signal_connect(GTK_OBJECT(msgbox),"delete_event",
 | 
				
			||||||
 | 
							     GTK_SIGNAL_FUNC(immortal),NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_widget_show(tbl);
 | 
				
			||||||
 | 
					  gtk_widget_show(msgbox);
 | 
				
			||||||
 | 
					  gtk_grab_add(msgbox);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* gtk_main MUST be running before message_box is called!!! */
 | 
				
			||||||
 | 
					  while(!cmdata.answer_available)
 | 
				
			||||||
 | 
					    gtk_main_iteration();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gtk_grab_remove(msgbox);
 | 
				
			||||||
 | 
					  gtk_widget_destroy(msgbox);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return(cmdata.answer);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void message_box_click_yes(GtkWidget *widget,gpointer data) {
 | 
				
			||||||
 | 
					  cmdata.answer=MSGBOX_R_YES;
 | 
				
			||||||
 | 
					  cmdata.answer_available=TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void message_box_click_no(GtkWidget *widget,gpointer data) {
 | 
				
			||||||
 | 
					  cmdata.answer=MSGBOX_R_NO;
 | 
				
			||||||
 | 
					  cmdata.answer_available=TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void message_box_click_cancel(GtkWidget *widget,gpointer data) {
 | 
				
			||||||
 | 
					  cmdata.answer=MSGBOX_R_CANCEL;
 | 
				
			||||||
 | 
					  cmdata.answer_available=TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void message_box_click_ok(GtkWidget *widget,gpointer data) {
 | 
				
			||||||
 | 
					  cmdata.answer=MSGBOX_R_OK;
 | 
				
			||||||
 | 
					  cmdata.answer_available=TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gint immortal(GtkWidget *widget,GdkEvent *event,gpointer data) {
 | 
				
			||||||
 | 
					  return TRUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										100
									
								
								yawmppp/src/gtksetup/msgbox.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								yawmppp/src/gtksetup/msgbox.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					/* GPL'd (C) 1999-2000 Felipe Bergo -- bergo@seul.org */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   This module is built up of the following files:
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   msgbox.h
 | 
				
			||||||
 | 
					   msgbox.cc _OR_ msgbox.c
 | 
				
			||||||
 | 
					   question.xpm
 | 
				
			||||||
 | 
					   bong.xpm
 | 
				
			||||||
 | 
					   exclamation.xpm
 | 
				
			||||||
 | 
					   info.xpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* return values */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef FB_MSGBOX_H
 | 
				
			||||||
 | 
					#define FB_MSGBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ENUMS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  MSGBOX_ICON_NONE,
 | 
				
			||||||
 | 
					  MSGBOX_ICON_ERROR,
 | 
				
			||||||
 | 
					  MSGBOX_ICON_INFO,
 | 
				
			||||||
 | 
					  MSGBOX_ICON_EXCLAMATION,
 | 
				
			||||||
 | 
					  MSGBOX_ICON_QUESTION
 | 
				
			||||||
 | 
					} MsgBoxIcon;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  MSGBOX_OK,
 | 
				
			||||||
 | 
					  MSGBOX_OKCANCEL,
 | 
				
			||||||
 | 
					  MSGBOX_YESNO,
 | 
				
			||||||
 | 
					  MSGBOX_YESNOCANCEL
 | 
				
			||||||
 | 
					} MsgBoxType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  MSGBOX_R_OK,
 | 
				
			||||||
 | 
					  MSGBOX_R_YES,
 | 
				
			||||||
 | 
					  MSGBOX_R_NO,
 | 
				
			||||||
 | 
					  MSGBOX_R_CANCEL
 | 
				
			||||||
 | 
					} MsgBoxResult;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* prototype */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					   obs 1: this call blocks until the user picks a choice.
 | 
				
			||||||
 | 
					   obs 2: parent can be NULL.
 | 
				
			||||||
 | 
					   obs 3: you must have a gtk_main loop running before calling it.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MsgBoxResult message_box(GtkWindow *parent,
 | 
				
			||||||
 | 
								 char *txt,
 | 
				
			||||||
 | 
								 char *title,
 | 
				
			||||||
 | 
								 MsgBoxType mbt,
 | 
				
			||||||
 | 
								 MsgBoxIcon mbi);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					   excerpt from my 900-page book
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   "The Ultimate Guide to Message Box Icons
 | 
				
			||||||
 | 
					    Felipe Bergo - 0th edition
 | 
				
			||||||
 | 
					    Prentice Room publishers,    
 | 
				
			||||||
 | 
					    ISBN 6666-6666-6666"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   MSGBOX_ICON_NONE          No icon.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   MSGBOX_ICON_ERROR         Should be used on errors, i.e.,
 | 
				
			||||||
 | 
					                             something wrong really happened.
 | 
				
			||||||
 | 
					                             Currently included icon is a white
 | 
				
			||||||
 | 
					                             cross in a red circle. "bong.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   MSGBOX_ICON_QUESTION      Should be used on any questions, like
 | 
				
			||||||
 | 
					                             confirmations. Currently included
 | 
				
			||||||
 | 
					                             icon is a white question mark in a 
 | 
				
			||||||
 | 
					                             green circle. "question.xpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   MSGBOX_ICON_EXCLAMATION   Should be used on warnings, like when
 | 
				
			||||||
 | 
					                             your code tries to allocate a resource
 | 
				
			||||||
 | 
					                             and it is busy (and being busy is "normal").
 | 
				
			||||||
 | 
					                             Currently included icon is a black exclamation
 | 
				
			||||||
 | 
					                             mark in an yellow triangle.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   MSGBOX_ICON_INFO          Should be used on general informative
 | 
				
			||||||
 | 
					                             messages, like "Operation Finished",
 | 
				
			||||||
 | 
					                             "Scan finished: 999999 blocks,
 | 
				
			||||||
 | 
					                              999998 bad, 1 good.", and the like.
 | 
				
			||||||
 | 
					                             Currently included icon is a white "i"
 | 
				
			||||||
 | 
					                             in a blue square.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The return value is an enum of MsgBoxResult type.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										140
									
								
								yawmppp/src/gtksetup/padlock.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								yawmppp/src/gtksetup/padlock.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,140 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * padlock_xpm[] = {
 | 
				
			||||||
 | 
					"64 64 73 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020202",
 | 
				
			||||||
 | 
					"+	c #464646",
 | 
				
			||||||
 | 
					"@	c #818181",
 | 
				
			||||||
 | 
					"#	c #C2C2C2",
 | 
				
			||||||
 | 
					"$	c #3D3326",
 | 
				
			||||||
 | 
					"%	c #929292",
 | 
				
			||||||
 | 
					"&	c #5F5E5C",
 | 
				
			||||||
 | 
					"*	c #B59470",
 | 
				
			||||||
 | 
					"=	c #262626",
 | 
				
			||||||
 | 
					"-	c #FEE6BE",
 | 
				
			||||||
 | 
					";	c #2C221B",
 | 
				
			||||||
 | 
					">	c #ACACAC",
 | 
				
			||||||
 | 
					",	c #8F6E52",
 | 
				
			||||||
 | 
					"'	c #DDC097",
 | 
				
			||||||
 | 
					")	c #B4B4B4",
 | 
				
			||||||
 | 
					"!	c #DADADA",
 | 
				
			||||||
 | 
					"~	c #231E19",
 | 
				
			||||||
 | 
					"{	c #BFA787",
 | 
				
			||||||
 | 
					"]	c #1C1A18",
 | 
				
			||||||
 | 
					"^	c #8A8A8A",
 | 
				
			||||||
 | 
					"/	c #BABABA",
 | 
				
			||||||
 | 
					"(	c #D4D4D4",
 | 
				
			||||||
 | 
					"_	c #777777",
 | 
				
			||||||
 | 
					":	c #CECECE",
 | 
				
			||||||
 | 
					"<	c #8E8E8E",
 | 
				
			||||||
 | 
					"[	c #5E4636",
 | 
				
			||||||
 | 
					"}	c #171411",
 | 
				
			||||||
 | 
					"|	c #666666",
 | 
				
			||||||
 | 
					"1	c #4C392D",
 | 
				
			||||||
 | 
					"2	c #A27E5E",
 | 
				
			||||||
 | 
					"3	c #D2B792",
 | 
				
			||||||
 | 
					"4	c #F4D2A5",
 | 
				
			||||||
 | 
					"5	c #DEDEDE",
 | 
				
			||||||
 | 
					"6	c #A98561",
 | 
				
			||||||
 | 
					"7	c #D9B287",
 | 
				
			||||||
 | 
					"8	c #707070",
 | 
				
			||||||
 | 
					"9	c #110E0B",
 | 
				
			||||||
 | 
					"0	c #9E7A5A",
 | 
				
			||||||
 | 
					"a	c #F1CA9E",
 | 
				
			||||||
 | 
					"b	c #989693",
 | 
				
			||||||
 | 
					"c	c #FDDEB1",
 | 
				
			||||||
 | 
					"d	c #5E4A36",
 | 
				
			||||||
 | 
					"e	c #9A9A9A",
 | 
				
			||||||
 | 
					"f	c #6C543E",
 | 
				
			||||||
 | 
					"g	c #424242",
 | 
				
			||||||
 | 
					"h	c #6A6A6A",
 | 
				
			||||||
 | 
					"i	c #F8F8F8",
 | 
				
			||||||
 | 
					"j	c #565656",
 | 
				
			||||||
 | 
					"k	c #2A2A2A",
 | 
				
			||||||
 | 
					"l	c #0B0A08",
 | 
				
			||||||
 | 
					"m	c #ECC698",
 | 
				
			||||||
 | 
					"n	c #795E46",
 | 
				
			||||||
 | 
					"o	c #463E30",
 | 
				
			||||||
 | 
					"p	c #B08C66",
 | 
				
			||||||
 | 
					"q	c #E2E2E2",
 | 
				
			||||||
 | 
					"r	c #E8E8E8",
 | 
				
			||||||
 | 
					"s	c #2E2A26",
 | 
				
			||||||
 | 
					"t	c #4A4A4A",
 | 
				
			||||||
 | 
					"u	c #CDA67E",
 | 
				
			||||||
 | 
					"v	c #505050",
 | 
				
			||||||
 | 
					"w	c #A4A4A4",
 | 
				
			||||||
 | 
					"x	c #D1AE84",
 | 
				
			||||||
 | 
					"y	c #060606",
 | 
				
			||||||
 | 
					"z	c #594636",
 | 
				
			||||||
 | 
					"A	c #E7C094",
 | 
				
			||||||
 | 
					"B	c #534131",
 | 
				
			||||||
 | 
					"C	c #7E624A",
 | 
				
			||||||
 | 
					"D	c #3C2D21",
 | 
				
			||||||
 | 
					"E	c #C09A72",
 | 
				
			||||||
 | 
					"F	c #DEB78B",
 | 
				
			||||||
 | 
					"G	c #F0F0F0",
 | 
				
			||||||
 | 
					"H	c #CACACA",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                          .kjjjjvg}.                            ",
 | 
				
			||||||
 | 
					"                         ]hw(!(:#)_gl.                          ",
 | 
				
			||||||
 | 
					"                        }%5qq!(::H#w_k.                         ",
 | 
				
			||||||
 | 
					"                       9^rrrq5!(:H##/b~.                        ",
 | 
				
			||||||
 | 
					"                       9#GGr:v==~$%#))b}.                       ",
 | 
				
			||||||
 | 
					"                      .wiii_9y   ylgw)>^l.                      ",
 | 
				
			||||||
 | 
					"                      ^Giirh       .t>)w8.                      ",
 | 
				
			||||||
 | 
					"                     .eiiG@.        .vw>@.                      ",
 | 
				
			||||||
 | 
					"                     ]eGi)y          .@w^}.                     ",
 | 
				
			||||||
 | 
					"                     8(GG)l          ._ww|.                     ",
 | 
				
			||||||
 | 
					"                     _!rrwy          .hweh.                     ",
 | 
				
			||||||
 | 
					"                     8(q(j.          .e/)8.                     ",
 | 
				
			||||||
 | 
					"                     8(5#]           .b)>h.                     ",
 | 
				
			||||||
 | 
					"                     8H(/]           .%>>|.                     ",
 | 
				
			||||||
 | 
					"                     hH(/]           .<>w<g                     ",
 | 
				
			||||||
 | 
					"                    .&#:)]           .@ww<v                     ",
 | 
				
			||||||
 | 
					"                    twHH>]           ._ee_=                     ",
 | 
				
			||||||
 | 
					"                    tw##w]         ,,y_b%&.                     ",
 | 
				
			||||||
 | 
					"                    $</#e] ...$$;,,,,;_%<&.~;                   ",
 | 
				
			||||||
 | 
					"                    .j>)b9lyAAFFac44mo8<^&f2..,                 ",
 | 
				
			||||||
 | 
					"                   n$j>)b+4ccc----c4'o+@8o&'mB...               ",
 | 
				
			||||||
 | 
					"                 ByD~&w>eBm4ccccccc!'b];]$*'a{...               ",
 | 
				
			||||||
 | 
					"               9}nn7,&w>%oFAa444444am3x{{x#mE9.9.               ",
 | 
				
			||||||
 | 
					"              ..s7xuCjew<ouFAa44444am'333''}l]s;.               ",
 | 
				
			||||||
 | 
					"              .xy.,En]&%k;{FAmmaaaaammm''7y.~1D;.               ",
 | 
				
			||||||
 | 
					"              .FACyfCvy.}2{u7AAAmmmmAm20o}]f[1D;.               ",
 | 
				
			||||||
 | 
					"              .FAudDlD0p*EEx77FAFFAooo.zBnnf[B$;.               ",
 | 
				
			||||||
 | 
					"              .FAu2nDly*EEuuux~9}99lEp6p0,Cf[1$;.               ",
 | 
				
			||||||
 | 
					"              .Fau6nBDy..y.yllyu7AaA7uEp2,Cfd1D;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6nBD.BBfn,06Eu7AaAFuEp2,CfdBD;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyBBfn,0pEu7Aam7uEp2,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyzzfn,06Eu7AaAFuEp2,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6nBDyBBfn,06Eu7Aam7uEp2,Cf[1D;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBD.[[fn,26Eu7AaAFuEp2,CfdBD;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyBBfn,06Eu7Aam7uEp2,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBD.[Bfn,26EuxAaAFuEp6,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyBBfn,06Eu7AamFuEp2,Cf[1D;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyz[fn,26EuxAaAFuEp2,CfdBD;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBD.BBfn,0pEu7AaAFuEp2,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6nBDy[Bfn,06Eu7AaAFuEp2,Cfd1$;.               ",
 | 
				
			||||||
 | 
					"              .Fmu6CB$.BBfn,06Eu7AaAFuEp2,Cf[1D].               ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDyB[fn,26Eu7AaAFuEp2,CfdBD.                ",
 | 
				
			||||||
 | 
					"              .Fmu6nBDyBBfn,0pEu7AaAFuEp2,Cfd19.                ",
 | 
				
			||||||
 | 
					"              .Fmu6CBDy[Bfn,06EuxAaAFuEp2,Cfd9.                 ",
 | 
				
			||||||
 | 
					"              .pmu6CBDyBBfn,06Eu7AaAFuEp2,C$..                  ",
 | 
				
			||||||
 | 
					"               .2u6nBDyz[fn,06Eu7AaAFuEp2dD.                    ",
 | 
				
			||||||
 | 
					"                y;,CBD.BBfn,0pEu7AaAFuE0].                      ",
 | 
				
			||||||
 | 
					"                 ..nBDy[Bfn,06Eu7AaAF$...                       ",
 | 
				
			||||||
 | 
					"                  ..y;.BBfn,0pEE6*E...                          ",
 | 
				
			||||||
 | 
					"                    ...zBfnD$1zB...                             ",
 | 
				
			||||||
 | 
					"                      .l999.                                    ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										100
									
								
								yawmppp/src/gtksetup/pppdoc.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								yawmppp/src/gtksetup/pppdoc.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * pppdoc_xpm[] = {
 | 
				
			||||||
 | 
					"32 32 65 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #010401",
 | 
				
			||||||
 | 
					"+	c #FBFAFB",
 | 
				
			||||||
 | 
					"@	c #A6A3A5",
 | 
				
			||||||
 | 
					"#	c #4E4A4F",
 | 
				
			||||||
 | 
					"$	c #C6C9C7",
 | 
				
			||||||
 | 
					"%	c #D8D7D8",
 | 
				
			||||||
 | 
					"&	c #E8EBE9",
 | 
				
			||||||
 | 
					"*	c #919492",
 | 
				
			||||||
 | 
					"=	c #9A90E3",
 | 
				
			||||||
 | 
					"-	c #958BC8",
 | 
				
			||||||
 | 
					";	c #A79ADD",
 | 
				
			||||||
 | 
					">	c #2B3264",
 | 
				
			||||||
 | 
					",	c #4E5285",
 | 
				
			||||||
 | 
					"'	c #64589F",
 | 
				
			||||||
 | 
					")	c #BB9CF9",
 | 
				
			||||||
 | 
					"!	c #6B62B1",
 | 
				
			||||||
 | 
					"~	c #7F60F1",
 | 
				
			||||||
 | 
					"{	c #836DE4",
 | 
				
			||||||
 | 
					"]	c #4F4CBD",
 | 
				
			||||||
 | 
					"^	c #836DCA",
 | 
				
			||||||
 | 
					"/	c #A485FF",
 | 
				
			||||||
 | 
					"(	c #906FFF",
 | 
				
			||||||
 | 
					"_	c #8178C9",
 | 
				
			||||||
 | 
					":	c #47408D",
 | 
				
			||||||
 | 
					"<	c #8D7CD5",
 | 
				
			||||||
 | 
					"[	c #001256",
 | 
				
			||||||
 | 
					"}	c #011080",
 | 
				
			||||||
 | 
					"|	c #693BFF",
 | 
				
			||||||
 | 
					"1	c #6A5BD8",
 | 
				
			||||||
 | 
					"2	c #7C6895",
 | 
				
			||||||
 | 
					"3	c #37318E",
 | 
				
			||||||
 | 
					"4	c #9C7AFB",
 | 
				
			||||||
 | 
					"5	c #7056F5",
 | 
				
			||||||
 | 
					"6	c #5A41D8",
 | 
				
			||||||
 | 
					"7	c #071256",
 | 
				
			||||||
 | 
					"8	c #2B25B0",
 | 
				
			||||||
 | 
					"9	c #001143",
 | 
				
			||||||
 | 
					"0	c #0F2292",
 | 
				
			||||||
 | 
					"a	c #463FA4",
 | 
				
			||||||
 | 
					"b	c #000B7A",
 | 
				
			||||||
 | 
					"c	c #422ED9",
 | 
				
			||||||
 | 
					"d	c #B9BCBA",
 | 
				
			||||||
 | 
					"e	c #22247D",
 | 
				
			||||||
 | 
					"f	c #4630EB",
 | 
				
			||||||
 | 
					"g	c #7F5CFF",
 | 
				
			||||||
 | 
					"h	c #8568FF",
 | 
				
			||||||
 | 
					"i	c #7A57FF",
 | 
				
			||||||
 | 
					"j	c #9E87D8",
 | 
				
			||||||
 | 
					"k	c #7047F4",
 | 
				
			||||||
 | 
					"l	c #3120CF",
 | 
				
			||||||
 | 
					"m	c #5E27FF",
 | 
				
			||||||
 | 
					"n	c #3B0FDC",
 | 
				
			||||||
 | 
					"o	c #14257B",
 | 
				
			||||||
 | 
					"p	c #A693D6",
 | 
				
			||||||
 | 
					"q	c #6D40FF",
 | 
				
			||||||
 | 
					"r	c #AD95FF",
 | 
				
			||||||
 | 
					"s	c #14205B",
 | 
				
			||||||
 | 
					"t	c #001299",
 | 
				
			||||||
 | 
					"u	c #1406C7",
 | 
				
			||||||
 | 
					"v	c #2417A4",
 | 
				
			||||||
 | 
					"w	c #CFBAFF",
 | 
				
			||||||
 | 
					"x	c #09219E",
 | 
				
			||||||
 | 
					"y	c #00138C",
 | 
				
			||||||
 | 
					"z	c #C7ABFE",
 | 
				
			||||||
 | 
					"                                ",
 | 
				
			||||||
 | 
					" ...............                ",
 | 
				
			||||||
 | 
					" .+++++++++++++..               ",
 | 
				
			||||||
 | 
					" .+++++++++++++.@.              ",
 | 
				
			||||||
 | 
					" .++#++#++##+++.+@.             ",
 | 
				
			||||||
 | 
					" .++#+#+#+#+#++.++@.            ",
 | 
				
			||||||
 | 
					" .++#+#+++#+#++......           ",
 | 
				
			||||||
 | 
					" .++#++#++##++++$%$%.           ",
 | 
				
			||||||
 | 
					" .++#+++#+#+++++++++.           ",
 | 
				
			||||||
 | 
					" .++#+#+#+#+++++++++.           ",
 | 
				
			||||||
 | 
					" .&&#&&#&&#&&&&&&&&&.           ",
 | 
				
			||||||
 | 
					" .&&&&&&&&&&&&&&+&&&......      ",
 | 
				
			||||||
 | 
					" .&&********@****...#=--;>.     ",
 | 
				
			||||||
 | 
					" .%%&%&%&%&%%%&..,'))-'!~{].    ",
 | 
				
			||||||
 | 
					" .%%%%%%%%%%%..'^//(_:<[}|12.   ",
 | 
				
			||||||
 | 
					" .$$*******$.3/4]:5678~9[0a>.   ",
 | 
				
			||||||
 | 
					" .$$$$$$$$$._~/'>->b[85c1[3'.   ",
 | 
				
			||||||
 | 
					" .$$$$$d$$._((c9a/7efgfhg1>.    ",
 | 
				
			||||||
 | 
					" .ddddddd.=h4i898hf||]jekh-.    ",
 | 
				
			||||||
 | 
					" .........'{h|l9h|mn!aop!{{;.   ",
 | 
				
			||||||
 | 
					"         .}}q|c9l|mml]p,'3r(j.  ",
 | 
				
			||||||
 | 
					"         .sti|u9tu|q|lo^^!ok~). ",
 | 
				
			||||||
 | 
					"         .77vv8[}blgqqc:86gr)w2.",
 | 
				
			||||||
 | 
					"         .so^i:}xyychq|k{=wz/j2.",
 | 
				
			||||||
 | 
					"          ...39bbbyx6i|/wwrgq4. ",
 | 
				
			||||||
 | 
					"             .7tyyyytl4)4~g~^^. ",
 | 
				
			||||||
 | 
					"              ..}xxyyb5gi~4:..  ",
 | 
				
			||||||
 | 
					"                ..oyybfi5^..    ",
 | 
				
			||||||
 | 
					"                  ..[}{:..      ",
 | 
				
			||||||
 | 
					"                    ....        ",
 | 
				
			||||||
 | 
					"                                ",
 | 
				
			||||||
 | 
					"                                "};
 | 
				
			||||||
							
								
								
									
										100
									
								
								yawmppp/src/gtksetup/question.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								yawmppp/src/gtksetup/question.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,100 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * question_xpm[] = {
 | 
				
			||||||
 | 
					"64 64 33 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020204",
 | 
				
			||||||
 | 
					"+	c #41891C",
 | 
				
			||||||
 | 
					"@	c #1C4807",
 | 
				
			||||||
 | 
					"#	c #256812",
 | 
				
			||||||
 | 
					"$	c #6BC22C",
 | 
				
			||||||
 | 
					"%	c #889C80",
 | 
				
			||||||
 | 
					"&	c #4EA624",
 | 
				
			||||||
 | 
					"*	c #2D470C",
 | 
				
			||||||
 | 
					"=	c #516D44",
 | 
				
			||||||
 | 
					"-	c #618C40",
 | 
				
			||||||
 | 
					";	c #54B62A",
 | 
				
			||||||
 | 
					">	c #1E570D",
 | 
				
			||||||
 | 
					",	c #337817",
 | 
				
			||||||
 | 
					"'	c #0D3104",
 | 
				
			||||||
 | 
					")	c #093704",
 | 
				
			||||||
 | 
					"!	c #46981F",
 | 
				
			||||||
 | 
					"~	c #2F5713",
 | 
				
			||||||
 | 
					"{	c #BEC7BA",
 | 
				
			||||||
 | 
					"]	c #E7EAE6",
 | 
				
			||||||
 | 
					"^	c #76B32C",
 | 
				
			||||||
 | 
					"/	c #AAB6A3",
 | 
				
			||||||
 | 
					"(	c #AAC2A4",
 | 
				
			||||||
 | 
					"_	c #D1D9CE",
 | 
				
			||||||
 | 
					":	c #497A2A",
 | 
				
			||||||
 | 
					"<	c #FEFEFC",
 | 
				
			||||||
 | 
					"[	c #5E9A27",
 | 
				
			||||||
 | 
					"}	c #62A927",
 | 
				
			||||||
 | 
					"|	c #071E04",
 | 
				
			||||||
 | 
					"1	c #677A5C",
 | 
				
			||||||
 | 
					"2	c #65B82C",
 | 
				
			||||||
 | 
					"3	c #396819",
 | 
				
			||||||
 | 
					"4	c #203A05",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                           ..........                           ",
 | 
				
			||||||
 | 
					"                        ...,,,333~>>@...                        ",
 | 
				
			||||||
 | 
					"                      ..+++-+::333#>>>@@..                      ",
 | 
				
			||||||
 | 
					"                    ..!![[[[-++:,33#>>@@@)..                    ",
 | 
				
			||||||
 | 
					"                   .![&[[[[[-+:::33#~>>@@@4).                   ",
 | 
				
			||||||
 | 
					"                  .[&}}}}}[[[-+,,33##~~~@*444.                  ",
 | 
				
			||||||
 | 
					"                 .&}};;;}}}[++:33#~~~~~~*@444).                 ",
 | 
				
			||||||
 | 
					"                .[}};;;&&[-+:,33~~>*>~~~~**444).                ",
 | 
				
			||||||
 | 
					"               .&&}^2;;;&+:333~**4444***~*@4444'.               ",
 | 
				
			||||||
 | 
					"              .!}}22;;;&+:3==-%%%1**44*****44'4)'.              ",
 | 
				
			||||||
 | 
					"              .[}}^2$2&[3~%{_{/_<<<_%*4****4444''.              ",
 | 
				
			||||||
 | 
					"             .!}}}^$$2}:3/]<1~*=/<<<<{~4***444'4''.             ",
 | 
				
			||||||
 | 
					"             .[[^^^$$^[:{<<<1*~>*<<<<<_*44*44'4'''.             ",
 | 
				
			||||||
 | 
					"            .+[[}^^$22--<<<<_~>*@{<<<<<%4**444|4'4'.            ",
 | 
				
			||||||
 | 
					"            .+[[^}^$$}[%<<<<<:#>@/<<<<</44*4444|4''.            ",
 | 
				
			||||||
 | 
					"            .-[[}}22$2&[<<<<<-#>@/<<<<</4**44|44444.            ",
 | 
				
			||||||
 | 
					"           .++[[}};;;2}[(<<<_,#>){<<<<<=4**4444|4'4'.           ",
 | 
				
			||||||
 | 
					"           .,+[[[&;;;;2&![}!,,#>@<<<<</44**444444444.           ",
 | 
				
			||||||
 | 
					"           .,,+!&&&;;;22}[!!+,#>%<<<<{****444444444).           ",
 | 
				
			||||||
 | 
					"           .,+++!!&&;;;;2;&!!,#3]<<]%~@>@**444444444.           ",
 | 
				
			||||||
 | 
					"           .#,++!!!&&&;;2}&&+,>%<</3**~>*@4'4444444'.           ",
 | 
				
			||||||
 | 
					"           .#,,++!!!&&&};;&!+,,<]1@>>>~>@*4'44444444.           ",
 | 
				
			||||||
 | 
					"           .##,,++!+!!!&&&&!+#%_,>>~>~~~@@44444444'4.           ",
 | 
				
			||||||
 | 
					"           .>##,,+++!!!!!!!!,#(%>>#>#>>**4'4444444'4.           ",
 | 
				
			||||||
 | 
					"           .>###,,++,+!!+!+,,#(#>>>~>~~@*44444444|4'.           ",
 | 
				
			||||||
 | 
					"           .>>###,,+,+,+++,,##:~>>#>~>@*@444444444''.           ",
 | 
				
			||||||
 | 
					"            .>>###,,,,,,,,,#>>@@@@>>@*@44@44444'|'|.            ",
 | 
				
			||||||
 | 
					"            .>>>######,,###>@=-1~4*@*@@444@4444'44'.            ",
 | 
				
			||||||
 | 
					"            .@@>>>#######>>@%]]<_=444444@4)44''|'|'.            ",
 | 
				
			||||||
 | 
					"             .@@@@>>>>>>>>@3<<<<<]')4444444''4'4''.             ",
 | 
				
			||||||
 | 
					"             .)@@@@@>@>>@@)=<<<<<]|'4)4))4)4''''|'.             ",
 | 
				
			||||||
 | 
					"              .)))@)@@@@@@)4_<<<<%|''44)4))''''').              ",
 | 
				
			||||||
 | 
					"              .))))))))))))'4%{{1'|4')4)))))')'''.              ",
 | 
				
			||||||
 | 
					"               .)'')))))))'|||||||'''))))))))))).               ",
 | 
				
			||||||
 | 
					"                .)''''))'''''|||'|''''')')')))).                ",
 | 
				
			||||||
 | 
					"                 .'''''''''''''''''''')))))')).                 ",
 | 
				
			||||||
 | 
					"                  .''''))''''''''''')'')))))'.                  ",
 | 
				
			||||||
 | 
					"                   .)''''))))''''''''))))))).                   ",
 | 
				
			||||||
 | 
					"                    ..')')'))''''''''')'))..                    ",
 | 
				
			||||||
 | 
					"                      ..)))')')'''')))))..                      ",
 | 
				
			||||||
 | 
					"                        ...))')''''''...                        ",
 | 
				
			||||||
 | 
					"                           ..........                           ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										175
									
								
								yawmppp/src/isprc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								yawmppp/src/isprc.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,175 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   YAWMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 2000:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Authors: Felipe Bergo     (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   contains code from the wmppp application by
 | 
				
			||||||
 | 
					            Martijn Pieterse (pieterse@xs4all.nl)
 | 
				
			||||||
 | 
					            Antoine Nulle    (warp@xs4all.nl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include "isprc.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					GetISPInfo(char *rcname,struct YAWMPPP_ISP_INFO *wii,int max)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					  int num_isps;
 | 
				
			||||||
 | 
					  char temp[512],work[512];
 | 
				
			||||||
 | 
					  char *q;
 | 
				
			||||||
 | 
					  char *tokens=" :\n\t";
 | 
				
			||||||
 | 
					  char *tokens2="\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  memset(&wii[0],0,sizeof(struct YAWMPPP_ISP_INFO));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  f=fopen(rcname,"r");
 | 
				
			||||||
 | 
					  if (!f) return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  num_isps=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* level 0 */
 | 
				
			||||||
 | 
					  while( fgets(temp,128,f) ) {    
 | 
				
			||||||
 | 
					    strcpy(work,temp);
 | 
				
			||||||
 | 
					    q=work;
 | 
				
			||||||
 | 
					    q=strtok(q,tokens);
 | 
				
			||||||
 | 
					    if (!q) continue;
 | 
				
			||||||
 | 
					    if (!strcmp(q,"ISP.BEGIN")) {
 | 
				
			||||||
 | 
					      if (num_isps>=max) continue;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					      /* enter ISP.BEGIN block */
 | 
				
			||||||
 | 
					      memset(&wii[num_isps],0,sizeof(struct YAWMPPP_ISP_INFO));
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.override=0;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.noipdefault=1;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.noauth=1;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.passive=0;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.defaultroute=1;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.chap=AUTH_DONTCARE;
 | 
				
			||||||
 | 
					      wii[num_isps].ppp.pap=AUTH_DONTCARE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      while( fgets(temp,128,f) ) {
 | 
				
			||||||
 | 
						strcpy(work,temp);
 | 
				
			||||||
 | 
						q=work;
 | 
				
			||||||
 | 
						q=strtok(q,tokens);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_LONGNAME)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].LongName,q,128);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_SHORTNAME)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].ShortName,q,16);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_STARTACTION)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].StartAction,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_STOPACTION)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].StopAction,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_IFDOWNACTION)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].IfDownAction,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_SPEEDACTION)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].SpeedAction,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPPSTUFF)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].PPPLine,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_CHATSTUFF)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].ChatFile,q,512);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_USER)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].User,q,32);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PHONE)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) strncpy(wii[num_isps].Phone,q,32);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						/* ppp options per ISP */
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_OVER)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.override=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_DEFAULTROUTE)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.defaultroute=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_PASSIVE)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.passive=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_NOAUTH)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.noauth=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_NOIPDEFAULT)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.noipdefault=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_CHAP)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.chap=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_PPP_PAP)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].ppp.pap=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,KEY_NOLOGIN)) {
 | 
				
			||||||
 | 
						  q=strtok(NULL,tokens2);
 | 
				
			||||||
 | 
						  if (q) wii[num_isps].nologin=atoi(q);
 | 
				
			||||||
 | 
						  continue;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (!strcmp(q,"ISP.END")) {
 | 
				
			||||||
 | 
						  num_isps++;
 | 
				
			||||||
 | 
						  break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					  return(num_isps);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										64
									
								
								yawmppp/src/isprc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								yawmppp/src/isprc.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef YAWMPPP_ISPRC_H
 | 
				
			||||||
 | 
					#define YAWMPPP_ISPRC_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEY_LONGNAME     "LongName"
 | 
				
			||||||
 | 
					#define KEY_SHORTNAME    "ShortName"
 | 
				
			||||||
 | 
					#define KEY_STARTACTION  "StartAction"
 | 
				
			||||||
 | 
					#define KEY_STOPACTION   "StopAction"
 | 
				
			||||||
 | 
					#define KEY_SPEEDACTION  "SpeedAction"
 | 
				
			||||||
 | 
					#define KEY_IFDOWNACTION "IfDownAction"
 | 
				
			||||||
 | 
					#define KEY_USER         "User"
 | 
				
			||||||
 | 
					#define KEY_PHONE        "Phone"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEY_PPP_OVER            "PPPOptionsOverride"
 | 
				
			||||||
 | 
					#define KEY_PPP_DEFAULTROUTE    "PPPDefaultRoute"
 | 
				
			||||||
 | 
					#define KEY_PPP_PASSIVE         "PPPPassive"
 | 
				
			||||||
 | 
					#define KEY_PPP_NOAUTH          "PPPNoAuth"
 | 
				
			||||||
 | 
					#define KEY_PPP_NOIPDEFAULT     "PPPNoIPDefault"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEY_PPP_CHAP            "PPPChap"
 | 
				
			||||||
 | 
					#define KEY_PPP_PAP             "PPPPap"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEY_NOLOGIN             "NoLogin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEY_PPPSTUFF            "PPPLine"
 | 
				
			||||||
 | 
					#define KEY_CHATSTUFF           "ChatFile"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define AUTH_REQUIRE  0
 | 
				
			||||||
 | 
					#define AUTH_REFUSE   1
 | 
				
			||||||
 | 
					#define AUTH_DONTCARE 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct ISP_PPP {
 | 
				
			||||||
 | 
					  int override;
 | 
				
			||||||
 | 
					  int defaultroute;
 | 
				
			||||||
 | 
					  int passive;
 | 
				
			||||||
 | 
					  int noauth;
 | 
				
			||||||
 | 
					  int noipdefault;
 | 
				
			||||||
 | 
					  int chap;
 | 
				
			||||||
 | 
					  int pap;
 | 
				
			||||||
 | 
					  int usepeerdns;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct YAWMPPP_ISP_INFO {
 | 
				
			||||||
 | 
					  char LongName[128];
 | 
				
			||||||
 | 
					  char ShortName[16];
 | 
				
			||||||
 | 
					  char StartAction[512];
 | 
				
			||||||
 | 
					  char StopAction[512];
 | 
				
			||||||
 | 
					  char SpeedAction[512];
 | 
				
			||||||
 | 
					  char IfDownAction[512];
 | 
				
			||||||
 | 
					  char PPPLine[512];
 | 
				
			||||||
 | 
					  char ChatFile[512];
 | 
				
			||||||
 | 
					  char User[32];
 | 
				
			||||||
 | 
					  char Phone[32];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct ISP_PPP ppp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int nologin;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					GetISPInfo(char *rcname,struct YAWMPPP_ISP_INFO *wii,int max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										169
									
								
								yawmppp/src/list.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								yawmppp/src/list.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,169 @@
 | 
				
			||||||
 | 
					/* Generic single linked list to keep various information 
 | 
				
			||||||
 | 
					   Copyright (C) 1993, 1994 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Author: Kresten Krab Thorup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Many modifications by Alfredo K. Kojima
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This file is part of GNU CC.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GNU CC 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GNU CC 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 GNU CC; see the file COPYING.  If not, write to
 | 
				
			||||||
 | 
					the Free Software Foundation, 59 Temple Place - Suite 330,
 | 
				
			||||||
 | 
					Boston, MA 02111-1307, USA.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* As a special exception, if you link this library with files compiled with
 | 
				
			||||||
 | 
					   GCC to produce an executable, this does not cause the resulting executable
 | 
				
			||||||
 | 
					   to be covered by the GNU General Public License. This exception does not
 | 
				
			||||||
 | 
					   however invalidate any other reasons why the executable file might be
 | 
				
			||||||
 | 
					   covered by the GNU General Public License.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "list.h"
 | 
				
			||||||
 | 
					#ifdef HAVE_SYS_TYPES_H
 | 
				
			||||||
 | 
					# include <sys/types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Return a cons cell produced from (head . tail) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList* 
 | 
				
			||||||
 | 
					list_cons(void* head, LinkedList* tail)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  LinkedList* cell;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cell = (LinkedList*)malloc(sizeof(LinkedList));
 | 
				
			||||||
 | 
					  cell->head = head;
 | 
				
			||||||
 | 
					  cell->tail = tail;
 | 
				
			||||||
 | 
					  return cell;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Return the length of a list, list_length(NULL) returns zero */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE int
 | 
				
			||||||
 | 
					list_length(LinkedList* list)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int i = 0;
 | 
				
			||||||
 | 
					  while(list)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      i += 1;
 | 
				
			||||||
 | 
					      list = list->tail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  return i;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Return the Nth element of LIST, where N count from zero.  If N 
 | 
				
			||||||
 | 
					   larger than the list length, NULL is returned  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void*
 | 
				
			||||||
 | 
					list_nth(int index, LinkedList* list)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  while(index-- != 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if(list->tail)
 | 
				
			||||||
 | 
						list = list->tail;
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  return list->head;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Remove the element at the head by replacing it by its successor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void
 | 
				
			||||||
 | 
					list_remove_head(LinkedList** list)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (!*list) return;  
 | 
				
			||||||
 | 
					  if ((*list)->tail)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      LinkedList* tail = (*list)->tail; /* fetch next */
 | 
				
			||||||
 | 
					      *(*list) = *tail;		/* copy next to list head */
 | 
				
			||||||
 | 
					      free(tail);			/* free next */
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  else				/* only one element in list */
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      free(*list);
 | 
				
			||||||
 | 
					      (*list) = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Remove the element with `car' set to ELEMENT */
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					INLINE void
 | 
				
			||||||
 | 
					list_remove_elem(LinkedList** list, void* elem)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  while (*list)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if ((*list)->head == elem)
 | 
				
			||||||
 | 
					        list_remove_head(list);
 | 
				
			||||||
 | 
					      *list = (*list ? (*list)->tail : NULL);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList *
 | 
				
			||||||
 | 
					list_remove_elem(LinkedList* list, void* elem)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    LinkedList *tmp;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (list) {
 | 
				
			||||||
 | 
						if (list->head == elem) {
 | 
				
			||||||
 | 
						    tmp = list->tail;
 | 
				
			||||||
 | 
						    free(list);
 | 
				
			||||||
 | 
						    return tmp;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						list->tail = list_remove_elem(list->tail, elem);
 | 
				
			||||||
 | 
						return list;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Return element that has ELEM as car */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList*
 | 
				
			||||||
 | 
					list_find(LinkedList* list, void* elem)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  while(list)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    if (list->head == elem)
 | 
				
			||||||
 | 
					      return list;
 | 
				
			||||||
 | 
					    list = list->tail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Free list (backwards recursive) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void
 | 
				
			||||||
 | 
					list_free(LinkedList* list)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if(list)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      list_free(list->tail);
 | 
				
			||||||
 | 
					      free(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Map FUNCTION over all elements in LIST */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void
 | 
				
			||||||
 | 
					list_mapcar(LinkedList* list, void(*function)(void*))
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  while(list)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      (*function)(list->head);
 | 
				
			||||||
 | 
					      list = list->tail;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								yawmppp/src/list.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								yawmppp/src/list.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,59 @@
 | 
				
			||||||
 | 
					/* Generic single linked list to keep various information 
 | 
				
			||||||
 | 
					   Copyright (C) 1993, 1994 Free Software Foundation, Inc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Author: Kresten Krab Thorup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This file is part of GNU CC.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GNU CC 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GNU CC 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 GNU CC; see the file COPYING.  If not, write to
 | 
				
			||||||
 | 
					the Free Software Foundation, 59 Temple Place - Suite 330,
 | 
				
			||||||
 | 
					Boston, MA 02111-1307, USA.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* As a special exception, if you link this library with files compiled with
 | 
				
			||||||
 | 
					   GCC to produce an executable, this does not cause the resulting executable
 | 
				
			||||||
 | 
					   to be covered by the GNU General Public License. This exception does not
 | 
				
			||||||
 | 
					   however invalidate any other reasons why the executable file might be
 | 
				
			||||||
 | 
					   covered by the GNU General Public License.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __LIST_H_
 | 
				
			||||||
 | 
					#define __LIST_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 | 
				
			||||||
 | 
					# define INLINE inline
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define INLINE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct LinkedList {
 | 
				
			||||||
 | 
					  void *head;
 | 
				
			||||||
 | 
					  struct LinkedList *tail;
 | 
				
			||||||
 | 
					} LinkedList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList* list_cons(void* head, LinkedList* tail);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE int list_length(LinkedList* list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void* list_nth(int index, LinkedList* list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void list_remove_head(LinkedList** list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList *list_remove_elem(LinkedList* list, void* elem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void list_mapcar(LinkedList* list, void(*function)(void*));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE LinkedList*list_find(LinkedList* list, void* elem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INLINE void list_free(LinkedList* list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										164
									
								
								yawmppp/src/misc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								yawmppp/src/misc.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,164 @@
 | 
				
			||||||
 | 
					/* dock.c- built-in Dock module for WindowMaker
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *  WindowMaker window manager
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *  Copyright (c) 1997 Alfredo K. Kojima
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 *  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 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, write to the Free Software
 | 
				
			||||||
 | 
					 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include "list.h"
 | 
				
			||||||
 | 
					#include "misc.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *----------------------------------------------------------------------
 | 
				
			||||||
 | 
					 * parse_command--
 | 
				
			||||||
 | 
					 * 	Divides a command line into a argv/argc pair.
 | 
				
			||||||
 | 
					 *---------------------------------------------------------------------- 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PRC_ALPHA	0
 | 
				
			||||||
 | 
					#define PRC_BLANK	1
 | 
				
			||||||
 | 
					#define PRC_ESCAPE	2
 | 
				
			||||||
 | 
					#define PRC_DQUOTE	3
 | 
				
			||||||
 | 
					#define PRC_EOS		4
 | 
				
			||||||
 | 
					#define PRC_SQUOTE	5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					    short nstate;
 | 
				
			||||||
 | 
					    short output;
 | 
				
			||||||
 | 
					} DFA;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static DFA mtable[9][6] = {
 | 
				
			||||||
 | 
					    {{3,1},{0,0},{4,0},{1,0},{8,0},{6,0}},
 | 
				
			||||||
 | 
					    {{1,1},{1,1},{2,0},{3,0},{5,0},{1,1}},
 | 
				
			||||||
 | 
					    {{1,1},{1,1},{1,1},{1,1},{5,0},{1,1}},
 | 
				
			||||||
 | 
					    {{3,1},{5,0},{4,0},{1,0},{5,0},{6,0}},
 | 
				
			||||||
 | 
					    {{3,1},{3,1},{3,1},{3,1},{5,0},{3,1}},
 | 
				
			||||||
 | 
					    {{-1,-1},{0,0},{0,0},{0,0},{0,0},{0,0}}, /* final state */
 | 
				
			||||||
 | 
					    {{6,1},{6,1},{7,0},{6,1},{5,0},{3,0}},
 | 
				
			||||||
 | 
					    {{6,1},{6,1},{6,1},{6,1},{5,0},{6,1}},
 | 
				
			||||||
 | 
					    {{-1,-1},{0,0},{0,0},{0,0},{0,0},{0,0}}, /* final state */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char*
 | 
				
			||||||
 | 
					next_token(char *word, char **next)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char *ptr;
 | 
				
			||||||
 | 
					    char *ret, *t;
 | 
				
			||||||
 | 
					    int state, ctype;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    t = ret = malloc(strlen(word)+1);
 | 
				
			||||||
 | 
					    ptr = word;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    state = 0;
 | 
				
			||||||
 | 
					    *t = 0;
 | 
				
			||||||
 | 
					    while (1) {
 | 
				
			||||||
 | 
						if (*ptr==0) 
 | 
				
			||||||
 | 
						    ctype = PRC_EOS;
 | 
				
			||||||
 | 
						else if (*ptr=='\\')
 | 
				
			||||||
 | 
						    ctype = PRC_ESCAPE;
 | 
				
			||||||
 | 
						else if (*ptr=='"')
 | 
				
			||||||
 | 
						    ctype = PRC_DQUOTE;
 | 
				
			||||||
 | 
						else if (*ptr=='\'')
 | 
				
			||||||
 | 
						    ctype = PRC_SQUOTE;
 | 
				
			||||||
 | 
						else if (*ptr==' ' || *ptr=='\t')
 | 
				
			||||||
 | 
						    ctype = PRC_BLANK;
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    ctype = PRC_ALPHA;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (mtable[state][ctype].output) {
 | 
				
			||||||
 | 
						    *t = *ptr; t++;
 | 
				
			||||||
 | 
						    *t = 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						state = mtable[state][ctype].nstate;
 | 
				
			||||||
 | 
						ptr++;
 | 
				
			||||||
 | 
						if (mtable[state][0].output<0) {
 | 
				
			||||||
 | 
						    break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (*ret==0)
 | 
				
			||||||
 | 
						t = NULL;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						t = strdup(ret);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    free(ret);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (ctype==PRC_EOS)
 | 
				
			||||||
 | 
						*next = NULL;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
						*next = ptr;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    return t;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void
 | 
				
			||||||
 | 
					parse_command(char *command, char ***argv, int *argc)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    LinkedList *list = NULL;
 | 
				
			||||||
 | 
					    char *token, *line;
 | 
				
			||||||
 | 
					    int count, i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    line = command;
 | 
				
			||||||
 | 
					    do {
 | 
				
			||||||
 | 
						token = next_token(line, &line);
 | 
				
			||||||
 | 
						if (token) {	    
 | 
				
			||||||
 | 
						    list = list_cons(token, list);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					    } while (token!=NULL && line!=NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    count = list_length(list);
 | 
				
			||||||
 | 
					    *argv = malloc(sizeof(char*)*count);
 | 
				
			||||||
 | 
					    i = count;
 | 
				
			||||||
 | 
					    while (list!=NULL) {
 | 
				
			||||||
 | 
						(*argv)[--i] = list->head;
 | 
				
			||||||
 | 
						list_remove_head(&list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    *argc = count;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern pid_t
 | 
				
			||||||
 | 
					execCommand(char *command)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    pid_t pid;
 | 
				
			||||||
 | 
					    char **argv;
 | 
				
			||||||
 | 
					    int argc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    parse_command(command, &argv, &argc);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (argv==NULL) {
 | 
				
			||||||
 | 
					        return 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if ((pid=fork())==0) {
 | 
				
			||||||
 | 
					        char **args;
 | 
				
			||||||
 | 
					        int i;
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        args = malloc(sizeof(char*)*(argc+1));
 | 
				
			||||||
 | 
					        if (!args)
 | 
				
			||||||
 | 
					          exit(10);
 | 
				
			||||||
 | 
					        for (i=0; i<argc; i++) {
 | 
				
			||||||
 | 
					            args[i] = argv[i];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        args[argc] = NULL;
 | 
				
			||||||
 | 
					        execvp(argv[0], args);
 | 
				
			||||||
 | 
					        exit(10);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return pid;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								yawmppp/src/misc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								yawmppp/src/misc.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#ifndef __MISC_H
 | 
				
			||||||
 | 
					#define __MISC_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void parse_command(char *, char ***, int *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern pid_t execCommand(char *);
 | 
				
			||||||
 | 
					#endif /* __MISC_H */
 | 
				
			||||||
							
								
								
									
										115
									
								
								yawmppp/src/stepphone.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								yawmppp/src/stepphone.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,115 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * stepphone_xpm[] = {
 | 
				
			||||||
 | 
					"48 48 64 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020202",
 | 
				
			||||||
 | 
					"+	c #E6E6E6",
 | 
				
			||||||
 | 
					"@	c #9A9A9A",
 | 
				
			||||||
 | 
					"#	c #5E5E5E",
 | 
				
			||||||
 | 
					"$	c #424242",
 | 
				
			||||||
 | 
					"%	c #363636",
 | 
				
			||||||
 | 
					"&	c #222222",
 | 
				
			||||||
 | 
					"*	c #B2B2B2",
 | 
				
			||||||
 | 
					"=	c #8A8A8A",
 | 
				
			||||||
 | 
					"-	c #1A1A1A",
 | 
				
			||||||
 | 
					";	c #EAEAEA",
 | 
				
			||||||
 | 
					">	c #EEEEEE",
 | 
				
			||||||
 | 
					",	c #161616",
 | 
				
			||||||
 | 
					"'	c #D2D2D2",
 | 
				
			||||||
 | 
					")	c #767676",
 | 
				
			||||||
 | 
					"!	c #525252",
 | 
				
			||||||
 | 
					"~	c #F2F2F2",
 | 
				
			||||||
 | 
					"{	c #0E0E0E",
 | 
				
			||||||
 | 
					"]	c #F6F6F6",
 | 
				
			||||||
 | 
					"^	c #6E6E6E",
 | 
				
			||||||
 | 
					"/	c #BABABA",
 | 
				
			||||||
 | 
					"(	c #FAFAFA",
 | 
				
			||||||
 | 
					"_	c #4E4E4E",
 | 
				
			||||||
 | 
					":	c #BEBEBE",
 | 
				
			||||||
 | 
					"<	c #9E9E9E",
 | 
				
			||||||
 | 
					"[	c #262626",
 | 
				
			||||||
 | 
					"}	c #0A0A0A",
 | 
				
			||||||
 | 
					"|	c #626262",
 | 
				
			||||||
 | 
					"1	c #969696",
 | 
				
			||||||
 | 
					"2	c #3A3A3A",
 | 
				
			||||||
 | 
					"3	c #DEDEDE",
 | 
				
			||||||
 | 
					"4	c #A2A2A2",
 | 
				
			||||||
 | 
					"5	c #7E7E7E",
 | 
				
			||||||
 | 
					"6	c #C2C2C2",
 | 
				
			||||||
 | 
					"7	c #4A4A4A",
 | 
				
			||||||
 | 
					"8	c #2A2A2A",
 | 
				
			||||||
 | 
					"9	c #5A5A5A",
 | 
				
			||||||
 | 
					"0	c #060606",
 | 
				
			||||||
 | 
					"a	c #FEFEFE",
 | 
				
			||||||
 | 
					"b	c #CACACA",
 | 
				
			||||||
 | 
					"c	c #A6A6A6",
 | 
				
			||||||
 | 
					"d	c #464646",
 | 
				
			||||||
 | 
					"e	c #323232",
 | 
				
			||||||
 | 
					"f	c #929292",
 | 
				
			||||||
 | 
					"g	c #666666",
 | 
				
			||||||
 | 
					"h	c #D6D6D6",
 | 
				
			||||||
 | 
					"i	c #1E1E1E",
 | 
				
			||||||
 | 
					"j	c #AEAEAE",
 | 
				
			||||||
 | 
					"k	c #565656",
 | 
				
			||||||
 | 
					"l	c #6A6A6A",
 | 
				
			||||||
 | 
					"m	c #121212",
 | 
				
			||||||
 | 
					"n	c #727272",
 | 
				
			||||||
 | 
					"o	c #8E8E8E",
 | 
				
			||||||
 | 
					"p	c #2E2E2E",
 | 
				
			||||||
 | 
					"q	c #AAAAAA",
 | 
				
			||||||
 | 
					"r	c #C6C6C6",
 | 
				
			||||||
 | 
					"s	c #DADADA",
 | 
				
			||||||
 | 
					"t	c #7A7A7A",
 | 
				
			||||||
 | 
					"u	c #828282",
 | 
				
			||||||
 | 
					"v	c #3E3E3E",
 | 
				
			||||||
 | 
					"w	c #CECECE",
 | 
				
			||||||
 | 
					"x	c #E2E2E2",
 | 
				
			||||||
 | 
					"y	c #B6B6B6",
 | 
				
			||||||
 | 
					"                                                ",
 | 
				
			||||||
 | 
					"                   ..........                   ",
 | 
				
			||||||
 | 
					"                ................                ",
 | 
				
			||||||
 | 
					"              ....................              ",
 | 
				
			||||||
 | 
					"            ........................            ",
 | 
				
			||||||
 | 
					"          ............................          ",
 | 
				
			||||||
 | 
					"         ..............................         ",
 | 
				
			||||||
 | 
					"        ................0}}{{}00........        ",
 | 
				
			||||||
 | 
					"       ..............}{m&8peee[i;](aaaaaa       ",
 | 
				
			||||||
 | 
					"      ............0{,ip$_#^n)^|7b3>(aaaaaa      ",
 | 
				
			||||||
 | 
					"     ...........}m&8v!g51qy//*cof*';]aaaaaa     ",
 | 
				
			||||||
 | 
					"     .........},&2_lu@*6h2vdvv2b_)<b;]aaaaa     ",
 | 
				
			||||||
 | 
					"    ........},&2!noj6hvvv(]]~aa2.vl@b;(aaaaa    ",
 | 
				
			||||||
 | 
					"    ......0mi%k)1/'2v%(~(aaaaa>(_0%^ch~aaaaa    ",
 | 
				
			||||||
 | 
					"   ......0,p_n1/wvv]]]aaa]$dk5];$k.$5/+(aaaaa   ",
 | 
				
			||||||
 | 
					"   .....}-%#=*wv2~~;aa~~a2aak)n~v$l.#cs]aaaaa   ",
 | 
				
			||||||
 | 
					"  .....0-%|16v2(]+a(+;>]$t~(dqu5!9..!1h]aaaaaa  ",
 | 
				
			||||||
 | 
					"  ....}-%g<b%](~aa^2d(]^d=~~$dd@0.!._@'~(aaaaa  ",
 | 
				
			||||||
 | 
					"  ...0,%g@bv(~;a]5$aadnnkk;]>]($m$d.k<h]aaaaaa  ",
 | 
				
			||||||
 | 
					" ....{8kfr%(~~(x@$:(~$d$;]~]+~]]0i.pgq3]aaaaaaa ",
 | 
				
			||||||
 | 
					" ...0-du:v~~]a>])d)]a$~~x;]^a(]+l.}8gch~aaaaaaa ",
 | 
				
			||||||
 | 
					" ...{[94%aa~>(>xndf~]~~+]5aa%n](_^.i_=:+]aaaaaa ",
 | 
				
			||||||
 | 
					" ...{p^yvoaaa>>>=$(]++;na(d5()aad_n.p#1r+]aaaaa ",
 | 
				
			||||||
 | 
					" ...{en:%=n5;>+~5d]~3;;xd=~oaa%n__kg0%|<b;(aaaa ",
 | 
				
			||||||
 | 
					" ..0m%)6vof^+_v!,0m_$2$2!,l)0-9}^g$9l.%lc'~aaaa ",
 | 
				
			||||||
 | 
					" ...m%t:d4)n~_d$00im$$$kvd0mkmll.m$vdn.v5:+(aaa ",
 | 
				
			||||||
 | 
					" ..0{e)/2%oo~!vm[}-m-d_vdd$mgl0{_7_dgnt}#4s]aaa ",
 | 
				
			||||||
 | 
					" ...{e^yd4%dd{,!m0m,m-k!__v_0mdd_klgll9.71'>aaa ",
 | 
				
			||||||
 | 
					" ...}&94v55o~97!0-[i,m,9!7$7d$d$l^^^9$n.$=w>aaa ",
 | 
				
			||||||
 | 
					"  ..0-d5/%jo)##00&m,,-ii#9$p!9^nll!v$!n.dob~(a  ",
 | 
				
			||||||
 | 
					"  ..0{8k=:22d.00-m,im,-&-!d_#|^l#_d_7!t._1']aa  ",
 | 
				
			||||||
 | 
					"  ...0,ekuc6h.0,,i,---,i-mk9gg_$_d7kd9.}^j3]aa  ",
 | 
				
			||||||
 | 
					"   ...0,8d|5<$p00m---i---mmg7kd$_!$!..%#fr+(a   ",
 | 
				
			||||||
 | 
					"   ....0{ipvk=gd8.0&-iim--m!!$$k$|..8dl163~(a   ",
 | 
				
			||||||
 | 
					"    .....0m-&6c=gdp00&mim,,$_!kg..pdgojbx]aa    ",
 | 
				
			||||||
 | 
					"    .......0{;srq=gd8.0m-,,9!_..pdg=j6s;](aa    ",
 | 
				
			||||||
 | 
					"     ........a~;srq=gdp..m,^0.pdg=c6s;~aaaa     ",
 | 
				
			||||||
 | 
					"     ........aaa~;src=g7e..0p7g=c6s;]aaaaaa     ",
 | 
				
			||||||
 | 
					"      .......aaaa(~;srqon#k|n=qrs;](aaaaaa      ",
 | 
				
			||||||
 | 
					"       ......aaaaaaa~;3b*c<c*b3;]aaaaaaaa       ",
 | 
				
			||||||
 | 
					"        aaaaaaaaaaaaa(]>x3h3x;](aaaaaaaa        ",
 | 
				
			||||||
 | 
					"         aaaaaaaaaaaaaaa(]]](aaaaaaaaaa         ",
 | 
				
			||||||
 | 
					"          aaaaaaaaaaaaaaaaaaaaaaaaaaaa          ",
 | 
				
			||||||
 | 
					"            aaaaaaaaaaaaaaaaaaaaaaaa            ",
 | 
				
			||||||
 | 
					"              aaaaaaaaaaaaaaaaaaaa              ",
 | 
				
			||||||
 | 
					"                aaaaaaaaaaaaaaaa                ",
 | 
				
			||||||
 | 
					"                   aaaaaaaaaa                   ",
 | 
				
			||||||
 | 
					"                                                "};
 | 
				
			||||||
							
								
								
									
										36
									
								
								yawmppp/src/thinppp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								yawmppp/src/thinppp/Makefile.in
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# thinppp: non-docked PPP applet
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC = @CC@
 | 
				
			||||||
 | 
					CFLAGS = -Wall -O2
 | 
				
			||||||
 | 
					GTKLIB = @GTK_LIBS@
 | 
				
			||||||
 | 
					GTKFLAG = @GTK_FLAGS@
 | 
				
			||||||
 | 
					RLFLAG = -DVERSION=\"@MK_YAWMPPP_RELEASE@\" -DIPREFIX=\"@prefix@\" -D@SYSDEF@
 | 
				
			||||||
 | 
					PROGINST = @INSTALL@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ALLDOTOS = thinppp.o
 | 
				
			||||||
 | 
					ALLDOTHS = thinppp.h ../isprc.h ../misc.h ../list.h ../ycommon.h
 | 
				
			||||||
 | 
					EOBJS = ../isprc.o ../ycommon.o ../misc.o ../list.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: build_thinppp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					build_thinppp: $(ALLDOTOS)
 | 
				
			||||||
 | 
						$(CC) $(ALLDOTOS) $(EOBJS) -o yawmppp.thin $(GTKLIB)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(ALLDOTOS): %.o : %.c $(ALLDOTHS)
 | 
				
			||||||
 | 
						$(CC) $(CFLAGS) $(RLFLAG) $(GTKFLAG) -I.. -c $< -o $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install:
 | 
				
			||||||
 | 
						$(PROGINST) -m 0755 yawmppp.thin @prefix@/bin/yawmppp.thin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					install-strip:
 | 
				
			||||||
 | 
						$(PROGINST) -s -m 0755 yawmppp.thin @prefix@/bin/yawmppp.thin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm -f $(ALLDOTOS) yawmppp.thin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distclean:
 | 
				
			||||||
 | 
						rm -f Makefile *~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										96
									
								
								yawmppp/src/thinppp/backxpm.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								yawmppp/src/thinppp/backxpm.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,96 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * backxpm_xpm[] = {
 | 
				
			||||||
 | 
					"320 20 73 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020204",
 | 
				
			||||||
 | 
					"+	c #C6C6C4",
 | 
				
			||||||
 | 
					"@	c #CACACC",
 | 
				
			||||||
 | 
					"#	c #ACAAAC",
 | 
				
			||||||
 | 
					"$	c #8E8E8C",
 | 
				
			||||||
 | 
					"%	c #B6B6B4",
 | 
				
			||||||
 | 
					"&	c #CECECC",
 | 
				
			||||||
 | 
					"*	c #BBBBBC",
 | 
				
			||||||
 | 
					"=	c #424244",
 | 
				
			||||||
 | 
					"-	c #1E1E1C",
 | 
				
			||||||
 | 
					";	c #2D2E2C",
 | 
				
			||||||
 | 
					">	c #B2B2B4",
 | 
				
			||||||
 | 
					",	c #D2D2D4",
 | 
				
			||||||
 | 
					"'	c #4C4C4C",
 | 
				
			||||||
 | 
					")	c #121214",
 | 
				
			||||||
 | 
					"!	c #848288",
 | 
				
			||||||
 | 
					"~	c #969694",
 | 
				
			||||||
 | 
					"{	c #5E5E5C",
 | 
				
			||||||
 | 
					"]	c #727274",
 | 
				
			||||||
 | 
					"^	c #3A3A3C",
 | 
				
			||||||
 | 
					"/	c #262624",
 | 
				
			||||||
 | 
					"(	c #3E3E3C",
 | 
				
			||||||
 | 
					"_	c #9A9A9C",
 | 
				
			||||||
 | 
					":	c #2A2A2C",
 | 
				
			||||||
 | 
					"<	c #565654",
 | 
				
			||||||
 | 
					"[	c #363634",
 | 
				
			||||||
 | 
					"}	c #666664",
 | 
				
			||||||
 | 
					"|	c #626264",
 | 
				
			||||||
 | 
					"1	c #868684",
 | 
				
			||||||
 | 
					"2	c #767674",
 | 
				
			||||||
 | 
					"3	c #6A6A6C",
 | 
				
			||||||
 | 
					"4	c #212624",
 | 
				
			||||||
 | 
					"5	c #222224",
 | 
				
			||||||
 | 
					"6	c #F6F2FC",
 | 
				
			||||||
 | 
					"7	c #E2E2E4",
 | 
				
			||||||
 | 
					"8	c #C6C2C4",
 | 
				
			||||||
 | 
					"9	c #283C38",
 | 
				
			||||||
 | 
					"0	c #222B2B",
 | 
				
			||||||
 | 
					"a	c #A2A2A4",
 | 
				
			||||||
 | 
					"b	c #263430",
 | 
				
			||||||
 | 
					"c	c #929294",
 | 
				
			||||||
 | 
					"d	c #8A8A8C",
 | 
				
			||||||
 | 
					"e	c #7C7C7C",
 | 
				
			||||||
 | 
					"f	c #464644",
 | 
				
			||||||
 | 
					"g	c #323234",
 | 
				
			||||||
 | 
					"h	c #2A3E3C",
 | 
				
			||||||
 | 
					"i	c #263A34",
 | 
				
			||||||
 | 
					"j	c #525254",
 | 
				
			||||||
 | 
					"k	c #FEFEFC",
 | 
				
			||||||
 | 
					"l	c #766264",
 | 
				
			||||||
 | 
					"m	c #945C5C",
 | 
				
			||||||
 | 
					"n	c #7A3E3C",
 | 
				
			||||||
 | 
					"o	c #8B5254",
 | 
				
			||||||
 | 
					"p	c #7A5354",
 | 
				
			||||||
 | 
					"q	c #854A4C",
 | 
				
			||||||
 | 
					"r	c #826E6C",
 | 
				
			||||||
 | 
					"s	c #8E7E7C",
 | 
				
			||||||
 | 
					"t	c #8E5654",
 | 
				
			||||||
 | 
					"u	c #926E6C",
 | 
				
			||||||
 | 
					"v	c #8E6664",
 | 
				
			||||||
 | 
					"w	c #9F2B2C",
 | 
				
			||||||
 | 
					"x	c #AE0204",
 | 
				
			||||||
 | 
					"y	c #A41C1C",
 | 
				
			||||||
 | 
					"z	c #964A4C",
 | 
				
			||||||
 | 
					"A	c #A80E0C",
 | 
				
			||||||
 | 
					"B	c #8A7674",
 | 
				
			||||||
 | 
					"C	c #9A3A3C",
 | 
				
			||||||
 | 
					"D	c #9A2224",
 | 
				
			||||||
 | 
					"E	c #924244",
 | 
				
			||||||
 | 
					"F	c #7E5A5C",
 | 
				
			||||||
 | 
					"G	c #725E5C",
 | 
				
			||||||
 | 
					"H	c #922E2C",
 | 
				
			||||||
 | 
					"................................................................................................................................................................................................................................................................................................................................",
 | 
				
			||||||
 | 
					".++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@#.++++$+++++++$%@##.",
 | 
				
			||||||
 | 
					".&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&@&#.@@*=-*&&&&&*-;*%>.",
 | 
				
			||||||
 | 
					".,,#''##)!#~.{##.##.##.#.!###)]])^^/#^/^/{#.^^/!#############################################################################################################################################################################################;;;;;#########################;################################(.@_:--<#####[--:}].",
 | 
				
			||||||
 | 
					".,,#_._|:##''/##/11.11/#./##|.]2^##^]^]##.#.##2^####..........................##.............................##..........................##...................................................................................###############>;;;#########################;::###..........................##^.+#;--:####{---322.",
 | 
				
			||||||
 | 
					".,,##'')!##)~41#']'[']'#.'1#/^3]5]])~[']{5#.]]^{####.66666666666!66666666666!7##.---------------------------7##.66666666666!66666666666!8##.-----------------------------9999999999999999999999999---------------------------7######|45503###a#;a###|45503#######|45503##;;;;b##.66666666666!66666666666!8##^.@#c---3##d---2#]].",
 | 
				
			||||||
 | 
					".&&_a$.5aae4a<fa3[5e5g3_.e[3f[33433ea['33$_.333aaaa_.6##########.6##########.7a_.5hhhh5hhhh5hhhh5hhhh5hhhh5-7a_.6##########.6##########.+a_.55hhh555hhh5555555hhh555hhh5599999999999999999999999995hhhh5hhhh5hhhh555555hhhh5-7aaaaa<5-54043aaaaaaaa<5-5404}aaaaa<5-54043aaaaaaa_.6###.##.###.6##########.+aa^.@aa|--;aa0-)2aa33.",
 | 
				
			||||||
 | 
					".@@___g}__f5g[)__5)_)5__._)52[}3g____g}____.________.6#####.####.6####.#####.7__.-i--i-i--i-i--i-i--i-i--i-57__.6######..##.6#..###..##.8__.-i---i-i---i--i--i---i-i---i-9999999999999999999999999-i--i-i--i-i--i------i--i-57____<5-40bbb;3_~____<5-40bbbb3___<5-40bbb03_______.6##..##..##.6#........#.8__^.@___[--|=--]___33.",
 | 
				
			||||||
 | 
					".+@cccg|cc)!cc-]c5jcj5~c.cj5cg||g~ccc;|~~~c.cccccc~c.6####..####.6####..####.7~c.5h55h5h55h5h55h5h55h5h55h-57~c.6#####...##.6#...#...##.8~c.5h555h5h555h55h55h555h5h555h599999999999999999999999995h55h5h55h5h55h5h55h5h55h-57c$~~55-50bib0<~cc~~~55-50bib0<c~c45-50bib0<ccccc~c.6#.$.##.j.#.6#.kkkkkk.#.8cc^.@ccc!4-:-/1ccc~}|.",
 | 
				
			||||||
 | 
					".88$$$3e$d{d$$3ed3edelmmnmopdqre3dms$ltddm${$$us$$dd.6###...####.6####...###.7dd.-iiii-iiii-iiii-iiii-iiii5-7dd.6#..#...###.6##.....###.+dd.--iii---iii-------iii---iii--9999999999999999999999999-iiii-iiii-iiii-i-i--iiii5-7$$dd5--400bb03dd$ddd5--400b003$d$---400bb03dddd$dd.6#.$.##.<.#.6#.k....k.#.8$d^.@d$$$}--/edd$$d{{.",
 | 
				
			||||||
 | 
					".**!11111!1!111111111vwwxywz!xm111xt1tx11xAB!1wt111!.6##....####.6####....##.71!.5h55h5h55h5h55h5h55h5h55i5571!.6#.....####.6###...####.+1!.5h555h5h555h55555h555h5h555h599999999999999999999999995h55h5h55h5h55h5hh555h55i5-7111!----04004!1!111!----00004!111----00004!111111!.6#.$$..$j.#.6#.kkkkkk.#.81!^.@!!1!!g--31!111{<.",
 | 
				
			||||||
 | 
					".**!e!eee!e!e!e!eeeee!!ext!!!xCtttxtetxeexwxtewte!e!.6###...####.6####...###.7e!.-i--i-i--i-i--i-i--i-i--h--7e!.6#....#####.6##.....###.8e!.-i---i-i---i--i--i---i-i---i-9999999999999999999999999-i--i-i--i-i--i-i-i--i--i5-7!ee!45---4555_e!eee!45---544-_eee45---545-_e!ee!e!.6##.$$$j.##.6#.k....k.#.+e!^.@e!e!{-;-:!!eee<<.",
 | 
				
			||||||
 | 
					".*%222ee2e2e2e2eeeee22e2xo222xyDDwxo2oxe2x2ExDwo2e22.6####..####.6####..####.722.5hhhh5hhhh5hhhh5hhhh5hhih55722.6#...######.6#...#...##.+22.55hhh555hhh555h555hhh555hhh5599999999999999999999999995hhhh5hhhh5hhhh5h55h5hhhi5-72e22'55--5--ja22e222'55----5'a2e2'55----5ja2e22e22.6###.$<.###.6#.kkkkkk.#.+22^.@2e2|-<34-[eee2j'.",
 | 
				
			||||||
 | 
					".>%]]]]3]3]3]3]3]3]3]]]]xq]]]xq2]]xq]qx]]x]]FAxq]3]].6#####.####.6####.#####.7]].-----------------------5--57]].6#..#######.6#..###..##.8]].-----------------------------9999999999999999999999999------------------------55-7]]]]]j4----'a3]]]]]]]j4--5-'a]]]]]j4---5'a3]3]23]].6###.$j.###.6#.k....k.#.8]]^.@23}4=]]}5-j3]]''.",
 | 
				
			||||||
 | 
					".#>333333333333333333333Dp333Dp333Dp3pD33D333GHp3333.6##########.6##########.733.5555555555555555555555-55-5733.6##########.6##########.833.55555555555555555555555555555999999999999999999999999955555555555555555555555--5-7}33333{{31a~3333333333{{3!a~3333333{{3!__333333333.6###.$j.###.6#.kkkkkk.#.833^.+335[3333'--{33'f.",
 | 
				
			||||||
 | 
					".>#}}|}}}}}}}}}|}|}|||||||||||||||}|||||||||||}|}|||.!...........s...........7||.7777777777777777777777777777||.!...........!...........8||.7777777777777777777777777777777777777777777777777777777777777777777777777777777777}||}||}||||}}}}|}||}||}||||}||||}||}|||}}}}}}|}|||.!...........!...........8||^.@}[g|}||}}'-/|}==.",
 | 
				
			||||||
 | 
					".#a{{<{<{<{<{<{<{<{{<{{{<{{{{<{{{<{{{<{{{<{{<{{<{{{{77777777777777777777777777<{{<{<<{<<{<<{<<{<<{<<{<{<{{{<{{{888888888888888888888888+8{<{{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{<<{{{{{{<{{<{{<{<{{<{<{{<{{<{{<{<{{<{{<{<{{<{{{<{<{<{<{{{{{888888888888888888888888+8<{^.@<'j<{{{{<{[(j<=(.",
 | 
				
			||||||
 | 
					"._~^^(^(^(^(^(((((^^(^^^(^^^^(^[^(^[^(^^^(^^(^^(^^[^^^^^^^^(^^^^(^^^^^^^^^^^^^([^(^((^((^((^((^((^((^(^(^^^(^[^^^^^^(^(^^^^^^^^^^^^^^^^^^^([^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^((^^^[^^(^^(^^(^(^^(^h^^(^^(^^(^(^^h^^(((^^(^^^(^(^(^(^^^[^^^^^^^^^^^^^^^^^^^^^^^^^^((^^.#^^^(^[[^(^^^((^^.",
 | 
				
			||||||
 | 
					"._~^^^^[^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^(^[^^[^^^^^^^^^^^^^^[^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.>^^^^^^^^^^^^^^^^.",
 | 
				
			||||||
 | 
					"................................................................................................................................................................................................................................................................................................................................"};
 | 
				
			||||||
							
								
								
									
										260
									
								
								yawmppp/src/thinppp/dataxpm.xpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								yawmppp/src/thinppp/dataxpm.xpm
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,260 @@
 | 
				
			||||||
 | 
					/* XPM */
 | 
				
			||||||
 | 
					static char * dataxpm_xpm[] = {
 | 
				
			||||||
 | 
					"64 192 65 1",
 | 
				
			||||||
 | 
					" 	c None",
 | 
				
			||||||
 | 
					".	c #020204",
 | 
				
			||||||
 | 
					"+	c #1E861C",
 | 
				
			||||||
 | 
					"@	c #968428",
 | 
				
			||||||
 | 
					"#	c #424244",
 | 
				
			||||||
 | 
					"$	c #CAC214",
 | 
				
			||||||
 | 
					"%	c #9A4A4C",
 | 
				
			||||||
 | 
					"&	c #760A0C",
 | 
				
			||||||
 | 
					"*	c #EE8284",
 | 
				
			||||||
 | 
					"=	c #12763B",
 | 
				
			||||||
 | 
					"-	c #B2A224",
 | 
				
			||||||
 | 
					";	c #DEE20C",
 | 
				
			||||||
 | 
					">	c #222224",
 | 
				
			||||||
 | 
					",	c #0AD10C",
 | 
				
			||||||
 | 
					"'	c #273634",
 | 
				
			||||||
 | 
					")	c #C4C4C4",
 | 
				
			||||||
 | 
					"!	c #969697",
 | 
				
			||||||
 | 
					"~	c #545453",
 | 
				
			||||||
 | 
					"{	c #686869",
 | 
				
			||||||
 | 
					"]	c #8A2624",
 | 
				
			||||||
 | 
					"^	c #D3D3D4",
 | 
				
			||||||
 | 
					"/	c #12AA14",
 | 
				
			||||||
 | 
					"(	c #ADAAAC",
 | 
				
			||||||
 | 
					"_	c #72E274",
 | 
				
			||||||
 | 
					":	c #89878B",
 | 
				
			||||||
 | 
					"<	c #967A34",
 | 
				
			||||||
 | 
					"[	c #E7E7E8",
 | 
				
			||||||
 | 
					"}	c #06EA04",
 | 
				
			||||||
 | 
					"|	c #624E34",
 | 
				
			||||||
 | 
					"1	c #747473",
 | 
				
			||||||
 | 
					"2	c #272B2C",
 | 
				
			||||||
 | 
					"3	c #39393A",
 | 
				
			||||||
 | 
					"4	c #B8B8B9",
 | 
				
			||||||
 | 
					"5	c #121210",
 | 
				
			||||||
 | 
					"6	c #E67674",
 | 
				
			||||||
 | 
					"7	c #CA4644",
 | 
				
			||||||
 | 
					"8	c #4AC24C",
 | 
				
			||||||
 | 
					"9	c #A20204",
 | 
				
			||||||
 | 
					"0	c #BC2C2A",
 | 
				
			||||||
 | 
					"a	c #07DE04",
 | 
				
			||||||
 | 
					"b	c #1E5E1C",
 | 
				
			||||||
 | 
					"c	c #FEA2A4",
 | 
				
			||||||
 | 
					"d	c #F8F4FC",
 | 
				
			||||||
 | 
					"e	c #F6FE04",
 | 
				
			||||||
 | 
					"f	c #B11B1A",
 | 
				
			||||||
 | 
					"g	c #82623C",
 | 
				
			||||||
 | 
					"h	c #C63A3C",
 | 
				
			||||||
 | 
					"i	c #C2BA1C",
 | 
				
			||||||
 | 
					"j	c #1ADE6C",
 | 
				
			||||||
 | 
					"k	c #159618",
 | 
				
			||||||
 | 
					"l	c #2A7E24",
 | 
				
			||||||
 | 
					"m	c #D65A5C",
 | 
				
			||||||
 | 
					"n	c #0FBB0C",
 | 
				
			||||||
 | 
					"o	c #02FE04",
 | 
				
			||||||
 | 
					"p	c #7E7E7C",
 | 
				
			||||||
 | 
					"q	c #5E5E5C",
 | 
				
			||||||
 | 
					"r	c #821A1C",
 | 
				
			||||||
 | 
					"s	c #D6D214",
 | 
				
			||||||
 | 
					"t	c #6E5E34",
 | 
				
			||||||
 | 
					"u	c #7A663C",
 | 
				
			||||||
 | 
					"v	c #A28E2C",
 | 
				
			||||||
 | 
					"w	c #DCDCDA",
 | 
				
			||||||
 | 
					"x	c #1E1E1C",
 | 
				
			||||||
 | 
					"y	c #2A3E3C",
 | 
				
			||||||
 | 
					"z	c #CBCBCC",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					" !(q>xx>{!( !(q>xx>{!( !(q>xx>{!( !(q>xx>{!(                    ",
 | 
				
			||||||
 | 
					" (~=nn,,k{( (~tv-i$@{( (~r07mm%{( (~>x>22>{!                    ",
 | 
				
			||||||
 | 
					" ~=/n,a}ak{ ~|<-is;s@{ ~&fhm6*6%{ q>x>22''21                    ",
 | 
				
			||||||
 | 
					" >k/na}o},~ >g@-i;e;i~ >9f7m*c*m~ xx>>2'y'2~                    ",
 | 
				
			||||||
 | 
					" xk/n,}}},{ xg<-is;si{ >9fhm6*6m{ xxxx2''22{                    ",
 | 
				
			||||||
 | 
					" xk/nn,,,np xg<v-i$i-p x9f07mmm7p >x>x>222>p                    ",
 | 
				
			||||||
 | 
					" >+k/nnnnn( >gg<v---v( x99f0h7h0( >>xxxx>>x(                    ",
 | 
				
			||||||
 | 
					" ~b+k////+! ~|gg<<@<u! ~&99ffff]! ~x>>xxxx~:                    ",
 | 
				
			||||||
 | 
					" {~b+kkkl(1 1~|ugggt!1 1~&9999r(1 1~>xx>x~!1                    ",
 | 
				
			||||||
 | 
					" {{q~{:(:{{ {{qq{:(({{ {{qq{p(!{{ {{qq{p(!{{                    ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"{1{1~{1{1{1{~{1:!)))):))))))):4z((                              ",
 | 
				
			||||||
 | 
					"11{>5{1p1p1{5x{!!zz4#>4zzzzz4>2444                              ",
 | 
				
			||||||
 | 
					"1!2x>~(((((3xx>[[z!2x>q(((((3xx2q{                              ",
 | 
				
			||||||
 | 
					"1('xx2((((qxxx{[[)('xx2((((qxxx{1p                              ",
 | 
				
			||||||
 | 
					"1(!xxx{((:xxxp([[z(!xxx{((:xxxp(1{                              ",
 | 
				
			||||||
 | 
					"1(!qxx'!(2x51!([[)(!qx>2((2x51!({{                              ",
 | 
				
			||||||
 | 
					"1!!!3xxq#xx1!!![[z!!!3>xq#xx1!!!1{                              ",
 | 
				
			||||||
 | 
					"1!!!p>x2x>:!!!![wz!!!p>x2x>:!!!!{q                              ",
 | 
				
			||||||
 | 
					"1::!:{xx>p:::::wwz::!:{xx2p:::!:qq                              ",
 | 
				
			||||||
 | 
					"1:::::'x>{:::::[^zp:::p'xx{:::::q~                              ",
 | 
				
			||||||
 | 
					"1ppppqx2x2p:p1pwwzppppqx2x2ppp1p~~                              ",
 | 
				
			||||||
 | 
					"11p1qxq{>x3ppp1^zz1p1{x~{>x3ppp1~~                              ",
 | 
				
			||||||
 | 
					"11{{>#11{>x~{11^zz1{{>#11{>x~{11##                              ",
 | 
				
			||||||
 | 
					"1{{>3{{{{#xxq{{^z){{>3{{{{#xxq{{~#                              ",
 | 
				
			||||||
 | 
					"1{3'q{{q{{#>>q{zzz{3'q{{{{{~x2q{##                              ",
 | 
				
			||||||
 | 
					"1~|~~qqqq~q3#~~z)zq#~qqqqq~q'#~~##                              ",
 | 
				
			||||||
 | 
					"q))))))4)z4))))))(333#3'333333##33                              ",
 | 
				
			||||||
 | 
					"{))4))))))))))))4433333333#3333333                              ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"...........p...........pdddddddddddpdddddddddddp                ",
 | 
				
			||||||
 | 
					".(((.((.(((d.((((((((((dd(((.((.(((.d((((((((((.                ",
 | 
				
			||||||
 | 
					".((..((..((d.(........(dd((..((..((.d(........(.                ",
 | 
				
			||||||
 | 
					".(.:.((.~.(d.(.dddddd.([d(.:.((.~.(.d(.dddddd.(.                ",
 | 
				
			||||||
 | 
					".(.:.((.~.(d.(.d5..5d.(dd(.:.((.~.(.d(.d5..5d.(.                ",
 | 
				
			||||||
 | 
					".(.!:..:~.(d.4.dddddd.(dd(.!:..:~.(.d(.dddddd.(.                ",
 | 
				
			||||||
 | 
					".((.:!:q.((d.(.d5..5d.(dd((.:!:q.((.d(.d5..5d.(.                ",
 | 
				
			||||||
 | 
					".(((.:~.(((d.4.dddddd.(dd(((.:~.(((.d4.dddddd.(.                ",
 | 
				
			||||||
 | 
					".(((.!~.(((d.(.d5..5d.(dd(((.!~.(((.d(.d5..5d.(.                ",
 | 
				
			||||||
 | 
					".(((.:~.(((d.4.dddddd.(dd(((.:~.(((.d4.dddddd.(.                ",
 | 
				
			||||||
 | 
					":dddddddddddpdddddddddd[:...........p...5..5....                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"...........:...........:dddddddddddpdddddddddddp                ",
 | 
				
			||||||
 | 
					".((((((((((d.((((((((((dd((((((((((.d((((((((((.                ",
 | 
				
			||||||
 | 
					".((((((..((d.(..(((..(([d((((((..((.d(..(((..((.                ",
 | 
				
			||||||
 | 
					".(((((...((d.(...(...((dd(((((...((.d(...(...((.                ",
 | 
				
			||||||
 | 
					".(..(...(((d.((.....(((dd(..(...(((.d((.....(((.                ",
 | 
				
			||||||
 | 
					".(.....((((d.(((...(((([d(.....((((.d(((...((((.                ",
 | 
				
			||||||
 | 
					".(....(((((d.((.....(((dd(....(((((.d((.....(((.                ",
 | 
				
			||||||
 | 
					".(...((((((d.(...(...((dd(...((((((.d(...(...((.                ",
 | 
				
			||||||
 | 
					".(..(((((((d.(..(((..((dd(..(((((((.d(..(((..((.                ",
 | 
				
			||||||
 | 
					".((((((((((d.((((((((((dd((((((((((.d((((((((((.                ",
 | 
				
			||||||
 | 
					":ddddddddddd:dddddddddd[p...........p...........                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"...........p...........:dddddddddddpdddddddddddp                ",
 | 
				
			||||||
 | 
					".((((((((((d.(((((((((([d((((((((((.d((((((((((.                ",
 | 
				
			||||||
 | 
					".(((((.((((d.((((.(((((dd(((((.((((.d((((.(((((.                ",
 | 
				
			||||||
 | 
					".((((..((((d.((((..((((dd((((..((((.d((((..((((.                ",
 | 
				
			||||||
 | 
					".(((...((((d.((((...(((dd(((...((((.d((((...(((.                ",
 | 
				
			||||||
 | 
					".((....((((d.((((....(([d((....((((.d((((....((.                ",
 | 
				
			||||||
 | 
					".(((...((((d.((((...(((dd(((...((((.d((((...(((.                ",
 | 
				
			||||||
 | 
					".((((..((((d.((((..((((dd((((..((((.d((((..((((.                ",
 | 
				
			||||||
 | 
					".(((((.((((d.((((.(((((dd(((((.((((.d((((.(((((.                ",
 | 
				
			||||||
 | 
					".((((((((((d.((((((((((dd((((((((((.d((((((((((.                ",
 | 
				
			||||||
 | 
					":dddddddddddpdddddddddddp...........p...........         _'8k_  ",
 | 
				
			||||||
 | 
					"xxxxxx>x>x>xxxxxxxx>xxx>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
 | 
				
			||||||
 | 
					"yyy8x8__8x8__8>83y8>8__8>8__8>8__8>8__8>8__8>8__8>yyyy>yyyy>yyyy",
 | 
				
			||||||
 | 
					"yx>_x3>>_>3>x_>_x>_>_>>yx_>>yxy>>_>_>>_x_>>_x_>>_xyxxyxyxxyxyxxy",
 | 
				
			||||||
 | 
					"yxx_xyxx_>y>>_>_x>_>_x>3>_xxyxyx>_>_x>_>_x>_>_x>_x_xx_x_xx_xyxxy",
 | 
				
			||||||
 | 
					"3yy8x8__8x8__8>8__8x8__8>8__8>yyy8>8__8>8__8x8yy8>_y_y>____xyyyy",
 | 
				
			||||||
 | 
					"yx>_x_x>yx'>x_xyx>_x3x>_x_x>_xyxx_x_x>_xyxx_>_xx_x__xy>_>>_xyxxy",
 | 
				
			||||||
 | 
					"y>x_>_xxyxy>x_xyxx_xy>x_>_>x_xyxx_>_xx_xyx>_x_x>_x_x_'x_>x_xyxxy",
 | 
				
			||||||
 | 
					"yyy_x8__8x8__8xyyy8>8__8x8__8xyyy8x8__8>8__8x8__8>_yy_>_yy_xyyyy",
 | 
				
			||||||
 | 
					"xxx>>>x>x>x>>x>xx>xxx>x>x>xx>xxxx>>>x>xx>>x>>x>x>xxxxxxxx>>>xxxx",
 | 
				
			||||||
 | 
					">x>xx>x>x>x>x>x>x>x>xx>x>x>xx>x>xx>x>x>>x>x>x>x>x>x>>>x>xxx>xx>>",
 | 
				
			||||||
 | 
					"8__8>8__8>8__8x8__8>8__8>x>xyyyyxyyyyxyyyy>x>x>xyyyy>x>x>>>x>>xx",
 | 
				
			||||||
 | 
					"_>xyx_>>_x_>>_>_>x_>_>>_x>x>yxxyxyxxyxyxxyx>x>xxyxxy>x>xxx>xx>>>",
 | 
				
			||||||
 | 
					"_>xy>_x>_>_x>_>_>>_>_>x_>xxx'>xyxy>xyxyxxyxy>xyxyxx'>x>>>>x>>xxx",
 | 
				
			||||||
 | 
					"8__yx8__>x8__>x8yy8x8__>x>x>3yyyxyyyyxyyyyxyxyxxyyyyx>xxx>xx>>>>",
 | 
				
			||||||
 | 
					"_>xy>_x>_>_x>_>_xx_>_x>_x>xxyxxyxyxxyxyxxyxyy>xxyxxy>x>>>x>>xxxx",
 | 
				
			||||||
 | 
					"_x>yx_>x_>_>x_>_>x_>_>x_>x>>yxxyxyxxyxyxxyxyxyxxyxxyxxxx>xx>>>>>",
 | 
				
			||||||
 | 
					"8__8>8yy8>8yy8>8__8>8yy8>x>xyyyyxyyyyxyyyyxyxxyxyy''>>>>x>>xxxxx",
 | 
				
			||||||
 | 
					">x>>x>xx>x>x>x>x>>x>x>x>x>xxxxxxxxxxxxxxxx>x>x>xx>x>xxx>xx>>>>>>",
 | 
				
			||||||
 | 
					"xxyyyx>xyyyx>x>x>xyyyx>xyyyx>xx>x>xx>x>x>x>x>xx>x>x>>>>x>>xxxxxx",
 | 
				
			||||||
 | 
					">yxx>yxyxx>yx>yx>yxx>yxyxx>yx>>xx>x>x>x>x>x>x>>x>x>xxx>xx>>>>>>>",
 | 
				
			||||||
 | 
					"xy>xxyxy>xxyxxyxxy>xxyxy>xxyxx>x>x>x>x>x>x>x>x>x>>x>>>x>>xxxxxxx",
 | 
				
			||||||
 | 
					"xxyyyxxxyyyx>xx>xxyyyxxxyyyx>x>x>x>x>x>x>x>x>x>x>x>xx>xx>>>>>>>>",
 | 
				
			||||||
 | 
					"xyxxxyxyxxxyx>x>xyxxxyxyxxxy>x>x>x>x>x>x>x>x>x>>x>x>>x>>xxxxxxxx",
 | 
				
			||||||
 | 
					">yx>>yxyx>>yx>yxxyx>xyxyx>xyx>x>x>x>x>x>x>x>xx>xx>xx>xx>>>>>>>>>",
 | 
				
			||||||
 | 
					"xxyyyx>xyyyxxxyx>xyyyx>xyyyx>x>x>x>x>x>x>x>x>x>>x>>>x>>xxxxxxxxx",
 | 
				
			||||||
 | 
					">xxxx>xxxx>x>>x>xxxx>x>xxxx>x>x>x>x>x>x>x>x>x>xx>xx>xx>>>>>>>>>>",
 | 
				
			||||||
 | 
					"x>x>x>x>x>x>x>x>x>>x>xx>>x>x>x>x>x>x>x>x>x>x>x>>x>>x>>xxxxxxxxxx",
 | 
				
			||||||
 | 
					">x>x>x>x>x>x>x>x>xx>x>>xx>x>x>x>x>x>x>x>x>x>x>xx>x>xx>>>>>>>>>>>",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   ",
 | 
				
			||||||
 | 
					">y__y>___y>y__y>___y>____>____>y__y>_yy_>y_yy>yyy_>_yy_>_yyyx   ",
 | 
				
			||||||
 | 
					"x_>>_x_>>_x_>>_x_>>_>_>>yx_>>yx_>>yx_xx_xy_xyxyxx_x_xx_x_xxy>   ",
 | 
				
			||||||
 | 
					"x_x>_>_xx_x_x>y>_xx_>_xxy>_x>y>_xxy>_>>_xy_xyxyx>_>_>_y>_xxyx   ",
 | 
				
			||||||
 | 
					">____x___y>_y''x_yy_x___'x___'x_y__>____x'_yyxyyy_>__''>_yyyx   ",
 | 
				
			||||||
 | 
					">_xx_>_x>_x_>x'>_xx_x_x>yx_xxyx_xx_x_xx_xy_xyxyxx_x_>_'x_xxyx   ",
 | 
				
			||||||
 | 
					">_x>_>_xx_x_xx_x_x>_>_x>y>_>xyx_>x_>_x>_xy_xyx_xx_>_xx_>_>xyx   ",
 | 
				
			||||||
 | 
					">_yy_x___y>y__y>___yx____x_yyyxy__yx_yy_xy_''xy__yx_yy_x____x   ",
 | 
				
			||||||
 | 
					"x>xx>>>xx>xx>>>x>x>x>>xx>>xxxxxx>x>x>xx>xxxx>x>xx>x>x>x>x>x>>   ",
 | 
				
			||||||
 | 
					">_yy_>_yy_>y__yx___yxy__yx___y>y__yxy___>_y'_x_yy_>_yy_x_yy_x   ",
 | 
				
			||||||
 | 
					"x____>__x_x_x>_>_>x_>_x>_>_x>_x_x>_xy>_y>_>x_>_>x_x_>x_x_xx_>   ",
 | 
				
			||||||
 | 
					">_x>_x_>__>_>x_>_>x_>_>x_>_>x_>_>xyxyx_yx_>>_x_>x_>_>x_>y__'x   ",
 | 
				
			||||||
 | 
					"x_yy_>_yy_>_yy_>___y>_yy_>___yxy__yxyy_y>_yy_>_yy_>_yy_x'__yx   ",
 | 
				
			||||||
 | 
					">_x>_x_>x_x_>x_>_>xyx_x>_x_>_yxyx>_xyx_yx_xx_>_x>_x____>y__yx   ",
 | 
				
			||||||
 | 
					"x_x>_>_>>_>_x>_>_>xy>_>_y>_>x_>_x>_xyx_yx_>>_xy__y>____x_xx_>   ",
 | 
				
			||||||
 | 
					">_yy_x_yy_xy__yx_yyyxy_y_x_yy_xy__yxyy_yx____>y__yx_yy_>_yy_x   ",
 | 
				
			||||||
 | 
					"xx>xx>x>xx>x>x>>xxxxx>xx>>x>x>x>x>x>xx>xx>>x>xx>x>x>>x>>xxxx>   ",
 | 
				
			||||||
 | 
					">_yy_x____>yyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyx   ",
 | 
				
			||||||
 | 
					"x_y>_xy>>_xyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxy>xyx   ",
 | 
				
			||||||
 | 
					">_yy_>yx_yxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyx'xxyx   ",
 | 
				
			||||||
 | 
					"xy__yxy_yyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyy>yyyy>   ",
 | 
				
			||||||
 | 
					"xyx_yxy_xyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyx   ",
 | 
				
			||||||
 | 
					"x'>_yx_xxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxyxyxxy>'>xyx   ",
 | 
				
			||||||
 | 
					">y_yyx____xyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyyyyxyy''xyy''x   ",
 | 
				
			||||||
 | 
					"x>xxx>>>x>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>xxx>>>   ",
 | 
				
			||||||
 | 
					">y__yx_yyyxyyyyxyyy_>____>y__yxy__yx_yyyxyyyyxyyy_>yyyyx_yyyx   ",
 | 
				
			||||||
 | 
					"x_x>_>_xxyxyxxyxyxx_>_>xyx_x>_x_>xy>_xxyxy_xyxyxx_x_x>_x_xxyx   ",
 | 
				
			||||||
 | 
					">_>x_>_>xyxy__yxyx>_x_>xyx_>xy>_x>yx_>xyxyyxyxyx>_>_x_yx_xxyx   ",
 | 
				
			||||||
 | 
					"x____x___yx_yy_xy___x___y>__yy>_y__>___yxy_yyxyyy_>__yyx_yyy>   ",
 | 
				
			||||||
 | 
					">_>>_>_>x_>_xxy>_>>_>_>xyx_xxyx_x>_>_>x_xy_xyxyxx_>_x_yx_xxyx   ",
 | 
				
			||||||
 | 
					"x_>x_x_x>_x_x>_x_>x_x_>xy>_>xy>_>x_x_>x_xy_xyx_>>_>_x>_x_>xyx   ",
 | 
				
			||||||
 | 
					">_yy_>___y>y__yxy___2____x_yyyxy__y>_yy_xy_yyxy__yx_yy_>'__'x   ",
 | 
				
			||||||
 | 
					">xxx>>>x>xx>x>x>>x>xx>x>>x>xxxx>x>x>xxx>xx>xxxx>x>x>x>x>>x>>x   ",
 | 
				
			||||||
 | 
					">_yy_xyyyyxyyyyx___yxy__yxyyyyxy__yxyyyyxyyyyx_yy_>_yy_x_yy_x   ",
 | 
				
			||||||
 | 
					"x____xyyxyxyxxy>_>x_>_x>_xyxxy>_x>_xyx_yxyxxy>_xx_>_xx_>_xx_>   ",
 | 
				
			||||||
 | 
					">_>x_xyxyyxyxxyx_>>_x_>x_>yxxyx_>xyxyx_yxyxxyx_>>_x_>>_xy__yx   ",
 | 
				
			||||||
 | 
					"x_yy_x_y__xy__y>___y>_yy_x_y_y>y__yxy___x_yy_>_yy_>_yy_xy__yx   ",
 | 
				
			||||||
 | 
					">_x>_x__x_>_>x_x_>xyx_x>_>__y_xyx>_>yx_y>_xx_x_x>_x____xy__yx   ",
 | 
				
			||||||
 | 
					">_x>_x_>>_x_x>_>_>xy>_x_yx_xxyx_>x_xy>_yx_>>_xy__y>____x_x>_>   ",
 | 
				
			||||||
 | 
					"x_yy_>_yy_>y__yx_yyyxy_y_>_yyyxy__yxyy_yxy__y>y__yx_yy_>_y'_x   ",
 | 
				
			||||||
 | 
					">>xx>x>xxx>x>x>x>xxx>x>x>x>xxxx>x>>xxx>xx>>xx>xx>x>>x>>x>xx>>   ",
 | 
				
			||||||
 | 
					"x_yy_>yyyyx8__8>yyy8x8__8>8__8>8yy8>8__8>8__8>8__8>8__8>8__8x   ",
 | 
				
			||||||
 | 
					">_yx_xyxxy>_>>_xyx__xy>>_xy>>_x_xx_x_x>yx_>xyxy>>_x_x>_>_x>_>   ",
 | 
				
			||||||
 | 
					"x_yy_x____>_x>_xyx>_>yxx_>yxx_>_>>_>_>xy>_>>yxyxx_>_>x_>_xx_x   ",
 | 
				
			||||||
 | 
					"xy__yxyyy_>8yy8xyyy8>8__8>8__8x8__8x8__8x8__8xyyy8>8__8>8__8>   ",
 | 
				
			||||||
 | 
					">yx_yxy__yx_x>_xyxx_>_>>yxy>>_2yx>_>y>>_>_>>_>yxx_>_x>_>yxx_x   ",
 | 
				
			||||||
 | 
					"xy>_yx_>xy>_x>_xy>>_x_xxyxy>x_xy>x_xy>x_x_>x_xy>>_>_x>_xy>x_>   ",
 | 
				
			||||||
 | 
					"xy_yyx____x8__8xyyy_>8__8>8__8xyyy8>8__8>8__8xyyy8x8__8>8__8x   ",
 | 
				
			||||||
 | 
					"xxxxxx>x>>>>>>x>xxx>x>>x>x>x>>xxxx>x>x>>x>x>x>xxx>>>>>x>x>x>>   ",
 | 
				
			||||||
 | 
					">x>>x>>x>xx>xx>x>x>x>>x>x>x>xx>>x>x>x>>x>>>x>x>x>x>x>xx>x>xxx   ",
 | 
				
			||||||
 | 
					">xx>x>x>x>x>>x>x>x>xx>x>x>x>>xx>x>x>>xx>xx>x>x>x>x>x>>x>xx>>>   ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>xxxxxxx",
 | 
				
			||||||
 | 
					"xxjjjxxx'''=x=jjj=x=jjj=x='''=x=jjj=x=jjj=x=jjj=x=jjj=x=jjj=>>>>",
 | 
				
			||||||
 | 
					">jx>xj>y>>xjx'xxxjxyxxxjxjx>xjxjxxxyxjxxx'>'xxxjxjxxxjxj>>>jxxjx",
 | 
				
			||||||
 | 
					">jx>xjxy>x>jxy>x>jxyx>>j>j>>>jxj>>xyxjx>x'xyxx>jxj>>>jxjxx>j>x=>",
 | 
				
			||||||
 | 
					"x=yyy=xxyyy=x=jjj=xxjjj=>=jjj=x=jjj=>=jjj=>xyyy=>=jjj=>=jjj=x>>x",
 | 
				
			||||||
 | 
					">jxxxj>yxxxj>j>x>yxyxx>jxy>x>j>yxxxjxj>x>j>yxxxjxjxx>jxyx>>jxx>>",
 | 
				
			||||||
 | 
					"xj>x>jxyx>>j>j>xxyxy>x>jxy>x>jxyx>>j>j>x>j>'>x>j>jx>xjxyxx>j>>jx",
 | 
				
			||||||
 | 
					">>jjj>xxyyy=x=jjj=x=jjj=>xyyy=x=jjj=>=jjj=x>yyy=x=jjj=>=jjj=xx=>",
 | 
				
			||||||
 | 
					"xxx>x>x>xxx>>>>x>>x>>>>x>xxxx>>x>>x>x>x>>>x>xxx>>>>>x>x>x>x>>>>x",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                ",
 | 
				
			||||||
 | 
					"                                                                "};
 | 
				
			||||||
							
								
								
									
										1085
									
								
								yawmppp/src/thinppp/thinppp.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1085
									
								
								yawmppp/src/thinppp/thinppp.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										153
									
								
								yawmppp/src/thinppp/thinppp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								yawmppp/src/thinppp/thinppp.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,153 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* DEFINES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gtk/gtk.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX_ISPS 40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define START_ACTION (NULL)
 | 
				
			||||||
 | 
					#define STOP_ACTION (NULL)
 | 
				
			||||||
 | 
					#define SPEED_ACTION (NULL)
 | 
				
			||||||
 | 
					#define IFDOWN_ACTION (NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAMP_FILE "/var/run/ppp0.pid"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* leds */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_PWR_X              (226)
 | 
				
			||||||
 | 
					#define LED_PWR_Y                (5)
 | 
				
			||||||
 | 
					#define LED_SND_X              (255)
 | 
				
			||||||
 | 
					#define LED_SND_Y                (5)
 | 
				
			||||||
 | 
					#define LED_RCV_X              (242)
 | 
				
			||||||
 | 
					#define LED_RCV_Y                (5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_PPP_RX              (1)
 | 
				
			||||||
 | 
					#define LED_PPP_TX		(2)
 | 
				
			||||||
 | 
					#define LED_PPP_POWER		(3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_ON_X                 (1)
 | 
				
			||||||
 | 
					#define LED_ON_Y                 (1)
 | 
				
			||||||
 | 
					#define LED_OFF_X               (34)
 | 
				
			||||||
 | 
					#define LED_OFF_Y                (1)
 | 
				
			||||||
 | 
					#define LED_ERR_X               (23)
 | 
				
			||||||
 | 
					#define LED_ERR_Y                (1)
 | 
				
			||||||
 | 
					#define LED_WTE_X               (12)
 | 
				
			||||||
 | 
					#define LED_WTE_Y                (1)
 | 
				
			||||||
 | 
					#define LED_SZE_X               (10)
 | 
				
			||||||
 | 
					#define LED_SZE_Y               (10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LED_GREEN   (1)
 | 
				
			||||||
 | 
					#define LED_RED     (2)
 | 
				
			||||||
 | 
					#define LED_YELLOW  (3)
 | 
				
			||||||
 | 
					#define LED_DARK    (4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* buttons */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V			(1)
 | 
				
			||||||
 | 
					#define BUT_X			(2)
 | 
				
			||||||
 | 
					#define BUT_REW			(3)
 | 
				
			||||||
 | 
					#define BUT_FF  		(4)
 | 
				
			||||||
 | 
					#define BUT_CONF   		(5)
 | 
				
			||||||
 | 
					#define BUT_LOG  		(6)
 | 
				
			||||||
 | 
					#define BUT_KILL                (7)
 | 
				
			||||||
 | 
					#define BUT_DRAG                (8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V_X                 (112)
 | 
				
			||||||
 | 
					#define BUT_V_Y                   (5)
 | 
				
			||||||
 | 
					#define BUT_X_X                 (124)
 | 
				
			||||||
 | 
					#define BUT_X_Y                   (5)
 | 
				
			||||||
 | 
					#define BUT_R_X                  (53)
 | 
				
			||||||
 | 
					#define BUT_R_Y                   (5)
 | 
				
			||||||
 | 
					#define BUT_F_X                  (65)
 | 
				
			||||||
 | 
					#define BUT_F_Y                   (5)
 | 
				
			||||||
 | 
					#define BUT_C_X                 (273)
 | 
				
			||||||
 | 
					#define BUT_C_Y                   (5)
 | 
				
			||||||
 | 
					#define BUT_L_X                 (285)
 | 
				
			||||||
 | 
					#define BUT_L_Y                   (5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_K_X              (302)
 | 
				
			||||||
 | 
					#define BUT_K_Y                (1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_K_SRC_X               (0)
 | 
				
			||||||
 | 
					#define BUT_K_SRC_Y              (30)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* displays */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TIMER_SRC_Y		(176)
 | 
				
			||||||
 | 
					#define TIMER_DES_Y		(6)
 | 
				
			||||||
 | 
					#define TIMER_DES_X             (141)
 | 
				
			||||||
 | 
					#define TIMER_SZE_X             (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ISP_BASE_X               (82)
 | 
				
			||||||
 | 
					#define ISP_BASE_Y               (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_DEST_X              (195)
 | 
				
			||||||
 | 
					#define ERR_DEST_Y                (6)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ERR_SRC_X                (0)
 | 
				
			||||||
 | 
					#define ERR_SRC_Y               (94)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define UPPER_ABC_BASE_X         (1)
 | 
				
			||||||
 | 
					#define UPPER_ABC_BASE_Y       (124)
 | 
				
			||||||
 | 
					#define LOWER_ABC_BASE_X         (1)
 | 
				
			||||||
 | 
					#define LOWER_ABC_BASE_Y       (148)
 | 
				
			||||||
 | 
					#define DIGIT_BASE_X            (11)
 | 
				
			||||||
 | 
					#define DIGIT_BASE_Y           (164)
 | 
				
			||||||
 | 
					#define SPACE_BASE_X            (11)
 | 
				
			||||||
 | 
					#define SPACE_BASE_Y           (140)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define HIST_SRC_X              (58)
 | 
				
			||||||
 | 
					#define HIST_SRC_Y              (92)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_V_SRC_X              (0)
 | 
				
			||||||
 | 
					#define BUT_V_SRC_Y             (70)
 | 
				
			||||||
 | 
					#define BUT_X_SRC_X             (12)
 | 
				
			||||||
 | 
					#define BUT_X_SRC_Y             (70)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_R_SRC_X              (0)
 | 
				
			||||||
 | 
					#define BUT_R_SRC_Y             (82)
 | 
				
			||||||
 | 
					#define BUT_F_SRC_X             (12)
 | 
				
			||||||
 | 
					#define BUT_F_SRC_Y             (82)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_C_SRC_X              (0)
 | 
				
			||||||
 | 
					#define BUT_C_SRC_Y             (58)
 | 
				
			||||||
 | 
					#define BUT_L_SRC_X             (12)
 | 
				
			||||||
 | 
					#define BUT_L_SRC_Y             (58)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUT_UP_INC              (24)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ORANGE_LED_TIMEOUT (60)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void create_thinppp(void);
 | 
				
			||||||
 | 
					gboolean exposed(GtkWidget *w,GdkEventExpose *gee,gpointer data);
 | 
				
			||||||
 | 
					gboolean bpress(GtkWidget *w,GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					gboolean brelease(GtkWidget *w,GdkEventButton *geb,gpointer data);
 | 
				
			||||||
 | 
					gboolean bmotion(GtkWidget *w,GdkEventMotion *geb,gpointer data);
 | 
				
			||||||
 | 
					gboolean wdestroy(GtkWidget *w,GdkEvent *ev,gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void refresh(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void setled(int index,int type);
 | 
				
			||||||
 | 
					void paste_xpm(int dx,int dy,int sx,int sy,int w,int h);
 | 
				
			||||||
 | 
					void DrawISPName (void);
 | 
				
			||||||
 | 
					void draw_isp_char (int pos, char letter);
 | 
				
			||||||
 | 
					void DrawTime (int i, int j);
 | 
				
			||||||
 | 
					void DrawStats (int num, int size, int x_left, int y_bottom);
 | 
				
			||||||
 | 
					void PrintLittle (int i, int *k);
 | 
				
			||||||
 | 
					void DrawSpeedInd (char *speed_action);
 | 
				
			||||||
 | 
					void DrawLoadInd (int speed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void init_ppp(void);
 | 
				
			||||||
 | 
					gint thinppp(gpointer data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sigusr_handler(int signum);
 | 
				
			||||||
 | 
					void make_delayed_update(void);
 | 
				
			||||||
 | 
					void usage (void);
 | 
				
			||||||
 | 
					void printversion (void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void grab_me(void);
 | 
				
			||||||
 | 
					void ungrab_me(void);
 | 
				
			||||||
 | 
					gboolean inbox(int x,int y,int bx,int by,int bw,int bh);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void read_initial_position(void);
 | 
				
			||||||
 | 
					void save_initial_position(void);
 | 
				
			||||||
							
								
								
									
										167
									
								
								yawmppp/src/yawmppp.1x
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								yawmppp/src/yawmppp.1x
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,167 @@
 | 
				
			||||||
 | 
					.TH YAWMPPP 1x "22 Feb 2001" "Free Software"  "User Manuals"
 | 
				
			||||||
 | 
					.SH NAME
 | 
				
			||||||
 | 
					yawmppp \- Window Maker dock front end for pppd and chat
 | 
				
			||||||
 | 
					.SH SYNOPSIS
 | 
				
			||||||
 | 
					yawmppp [\fB\-h\fR] [\fB\-i\fR \fIdevice\fR] [\fB-t\fR]
 | 
				
			||||||
 | 
					        [\fB\-u\fR \fIupdate rate\fR] [\fB\-v\fR]
 | 
				
			||||||
 | 
					        [\fB\-caution\fR | \fB-paranoid\fR]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					yawmppp.thin [\fB\-h\fR] [\fB\-i\fR \fIdevice\fR] [\fB-t\fR]
 | 
				
			||||||
 | 
					             [\fB\-u\fR \fIupdate rate\fR] [\fB\-v\fR]
 | 
				
			||||||
 | 
					             [\fB\-caution\fR | \fB-paranoid\fR]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH DESCRIPTION
 | 
				
			||||||
 | 
					This man page documents version 2.0.2 of \fByawmppp\fR.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.B "yawmppp"
 | 
				
			||||||
 | 
					is \fBY\fRet \fBA\fRnother \fBW\fRindow \fBM\fRaker
 | 
				
			||||||
 | 
					\fBPPP\fR dock applet.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.B "yawmppp"
 | 
				
			||||||
 | 
					runs docked in Window Maker's dock (or clip), swallowed in
 | 
				
			||||||
 | 
					AfterStep's wharf or as a iconic shaped window on other
 | 
				
			||||||
 | 
					window managers. If you are not using a dock-capable
 | 
				
			||||||
 | 
					window manager (Window Maker and AfterStep) then you may
 | 
				
			||||||
 | 
					prefer to run \fByawmppp.thin\fR instead, which is
 | 
				
			||||||
 | 
					the same applet shaped as an horizontal bar, designed
 | 
				
			||||||
 | 
					for use without a dock.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It provides a front end for the programs chat and pppd, in
 | 
				
			||||||
 | 
					a way that you probably shouldn't ever need to edit
 | 
				
			||||||
 | 
					directly these programs' scripts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The \fBv\fR button starts a connection to the currently
 | 
				
			||||||
 | 
					selected ISP entry (whose handle is shown in the bottom
 | 
				
			||||||
 | 
					left corner of the display). The \fBx\fR button closes
 | 
				
			||||||
 | 
					the current connection. The arrow buttons let you
 | 
				
			||||||
 | 
					select a dialing entry.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To create and edit dialing entries you should use the
 | 
				
			||||||
 | 
					\fByawmppp.pref\fR program, which can be run by clicking the
 | 
				
			||||||
 | 
					left mouse button in yawmppp's display area.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can see a log of your connections with the \fByawmppp.log\fR
 | 
				
			||||||
 | 
					program, which can be run by clicking yawmppp's display area
 | 
				
			||||||
 | 
					with any mouse button but the left.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH DISPLAY
 | 
				
			||||||
 | 
					Yawmppp's display has a connection timer at the top left corner,
 | 
				
			||||||
 | 
					three LEDs at the top right meaning RX,TX and POWER. The RX/TX
 | 
				
			||||||
 | 
					leds blinking upon the receive/send of PPP packets. The
 | 
				
			||||||
 | 
					POWER led is dark when you're offline, yellow when dialing,
 | 
				
			||||||
 | 
					green when connected, red when an error has ocurred with the
 | 
				
			||||||
 | 
					connection.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In the middle of the display is an auto-scaling load graph. The
 | 
				
			||||||
 | 
					bottom left corner shows the current ISP's handle and the
 | 
				
			||||||
 | 
					bottom right corner displays the CONNECT speed in the first
 | 
				
			||||||
 | 
					10 seconds of connection, then starts showing the
 | 
				
			||||||
 | 
					characters-per-second rate.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "COMMAND-LINE OPTIONS"
 | 
				
			||||||
 | 
					.IP "\-caution"
 | 
				
			||||||
 | 
					.IP "\-paranoid"
 | 
				
			||||||
 | 
					these options will change the way yawmppp touches the PPP interface.
 | 
				
			||||||
 | 
					Caution will keep associated structures open while
 | 
				
			||||||
 | 
					the connection is up only. Paranoid will open and close the
 | 
				
			||||||
 | 
					structures LOTS of times to keep them closed as much as possible.
 | 
				
			||||||
 | 
					These options are meant for PCMCIA & APM (notebooks, maybe PDAs) users
 | 
				
			||||||
 | 
					who run into trouble with cardctl commands. Don't use these options unless
 | 
				
			||||||
 | 
					you really need them. And if you need, check if caution is enough,
 | 
				
			||||||
 | 
					be paranoid only when absolutely necessary. When none is
 | 
				
			||||||
 | 
					specified, \fB-caution\fR is default.
 | 
				
			||||||
 | 
					.IP "\-i device"
 | 
				
			||||||
 | 
					use a ppp device other then ppp0.
 | 
				
			||||||
 | 
					.IP "\-h"
 | 
				
			||||||
 | 
					shows a brief help message
 | 
				
			||||||
 | 
					.IP "\-t"
 | 
				
			||||||
 | 
					set timer to MM:SS instead of HH:MM
 | 
				
			||||||
 | 
					.IP "\-u update\-rate"
 | 
				
			||||||
 | 
					sets the interval for statistics update (load graph and cps rate).
 | 
				
			||||||
 | 
					If not set, defaults to 5 seconds.
 | 
				
			||||||
 | 
					.IP "\-v"
 | 
				
			||||||
 | 
					shows version and exits.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "PPPD OPTIONS"
 | 
				
			||||||
 | 
					yawmppp.pref provides a good set of options from pppd, but if need
 | 
				
			||||||
 | 
					any other that isn't (yet) directly supported, put it in
 | 
				
			||||||
 | 
					/etc/ppp/options. Per-ISP options are placed in /etc/ppp/peers,
 | 
				
			||||||
 | 
					as newer pppd versions require (since 2.3.7 at least). Whenever
 | 
				
			||||||
 | 
					YAWMPPP needs to write some file there, it will ask for the
 | 
				
			||||||
 | 
					superuser password on an xterm. Configuration files must go
 | 
				
			||||||
 | 
					under /etc/ppp/peers or the noauth option, usually required to
 | 
				
			||||||
 | 
					connect to ISPs, won't be allowed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "DNS Handling"
 | 
				
			||||||
 | 
					In the past, YAWMPPP changed the named(8) configuration files to
 | 
				
			||||||
 | 
					set DNS up, but nowadays pppd has taken over this task with the
 | 
				
			||||||
 | 
					usepeerdns option. From pppd 2.3.11 up, DNS should work out of the
 | 
				
			||||||
 | 
					box. pppd 2.3.10 and some earlier versions may require working
 | 
				
			||||||
 | 
					/etc/ppp/ip-up and /etc/ppp/ip-down files. Some distributions
 | 
				
			||||||
 | 
					provide these files worked out (Red Hat), others
 | 
				
			||||||
 | 
					don't (Slackware). Here is a sample minimalist set of these files:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\fB/etc/ppp/ip-up\fR
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					echo "search mydomain.org" > /etc/resolv.conf
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					echo "nameserver $DNS1" >> /etc/resolv.conf
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\fB/etc/ppp/ip-down\fR
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					echo "search mydomain.org" > /etc/resolv.conf
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					echo "nameserver" >> /etc/resolv.conf
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "FILES"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.IR ~/.yawmppp2
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					.IR ~/.yawmppp2/yawmppprc
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					.IR ~/.yawmppp2/logfile
 | 
				
			||||||
 | 
					.br
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "BUGS"
 | 
				
			||||||
 | 
					.BR "yawmppp "
 | 
				
			||||||
 | 
					You must set your PAP/CHAP secrets directly in the /etc/ppp/chap-secrets
 | 
				
			||||||
 | 
					and /etc/ppp/pap-secrets files. For security reasons, yawmppp cannot do
 | 
				
			||||||
 | 
					it for you.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you run more than one copy of yawmppp or yawmppp.thin you'll get
 | 
				
			||||||
 | 
					repeated log entries.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "PORTABILITY"
 | 
				
			||||||
 | 
					.BR "yawmppp "
 | 
				
			||||||
 | 
					has been reported to run on Linux, NetBSD and FreeBSD. Your
 | 
				
			||||||
 | 
					mileage may vary on Linux, as pppd configuration can vary wildly from
 | 
				
			||||||
 | 
					distribution to distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					On Slackware Linux 7.0 you must set up /etc/ppp/ip-up and /etc/ppp/ip-down
 | 
				
			||||||
 | 
					on your own to get DNS resolution working.
 | 
				
			||||||
 | 
					The minimalist sample given in this man page works.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "CREDITS"
 | 
				
			||||||
 | 
					.BR "yawmppp "
 | 
				
			||||||
 | 
					was written by Felipe Bergo <bergo@seul.org>. The dock applet
 | 
				
			||||||
 | 
					is based on wmppp 1.3.0, which was written by Martijn Pieterse and
 | 
				
			||||||
 | 
					Antoine Nulle.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "UNRESTRICTIONS"
 | 
				
			||||||
 | 
					.BR "yawmppp "
 | 
				
			||||||
 | 
					is free; anyone may redistribute copies of \fByawmppp\fR to anyone under the
 | 
				
			||||||
 | 
					terms stated in the GNU General Public License. A copy of the license accompanies
 | 
				
			||||||
 | 
					each copy of \fByawmppp\fR.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "WEB SITE"
 | 
				
			||||||
 | 
					http://yawmppp.seul.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.SH "SEE ALSO"
 | 
				
			||||||
 | 
					\fBpppd\fR(8), \fBchat\fR(8), \fBresolver\fR(5), \fBsetserial\fR(8),
 | 
				
			||||||
 | 
					\fBttys\fR(4)
 | 
				
			||||||
							
								
								
									
										410
									
								
								yawmppp/src/ycommon.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										410
									
								
								yawmppp/src/ycommon.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,410 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   YAWMPPP - PPP dock app/helper for WindowMaker
 | 
				
			||||||
 | 
					   Copyright (C) 2000,2001:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Author:  Felipe Bergo     (bergo@seul.org)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   based on the wmppp application by
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Martijn Pieterse (pieterse@xs4all.nl)
 | 
				
			||||||
 | 
					            Antoine Nulle    (warp@xs4all.nl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   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 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, write to the Free Software
 | 
				
			||||||
 | 
					   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   $Id: ycommon.c,v 1.1.1.1 2001/02/22 07:15:59 bergo Exp $
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <fcntl.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <ctype.h>
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/wait.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#include <sys/param.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/ioctl.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/socket.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LINUX
 | 
				
			||||||
 | 
					#define _LINUX_SOCKET_H
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* guessworks for critters beyond the realm of Linux and FreeBSD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef OPENBSD
 | 
				
			||||||
 | 
					#define FREEBSD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef NETBSD
 | 
				
			||||||
 | 
					#define FREEBSD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef BSDISH
 | 
				
			||||||
 | 
					#define FREEBSD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LINUX
 | 
				
			||||||
 | 
					  #include <asm/types.h>
 | 
				
			||||||
 | 
					  #include <linux/if.h>
 | 
				
			||||||
 | 
					  #include <linux/ppp_defs.h>
 | 
				
			||||||
 | 
					  #include <linux/if_ppp.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef FREEBSD
 | 
				
			||||||
 | 
					  #include <net/if.h>
 | 
				
			||||||
 | 
					  #include <net/ppp_defs.h>
 | 
				
			||||||
 | 
					  #include <net/if_ppp.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "ycommon.h"
 | 
				
			||||||
 | 
					#include "isprc.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct LogStruct logconn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int ppp_h;
 | 
				
			||||||
 | 
					extern int ppp_open;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct YAWMPPP_ISP_INFO IspData[MAX_ISPS];
 | 
				
			||||||
 | 
					extern int num_isps;
 | 
				
			||||||
 | 
					extern int current_isp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char *active_interface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* LOGS = ~/.yawmppp2/log */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					clean_guards(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  char temp[128],aux[128];
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p = getenv ("HOME");
 | 
				
			||||||
 | 
					  strcpy (temp, p);
 | 
				
			||||||
 | 
					  strcat (temp, "/.yawmppp2/.floatlog");
 | 
				
			||||||
 | 
					  f=fopen(temp,"r");
 | 
				
			||||||
 | 
					  if (!f)
 | 
				
			||||||
 | 
					    return; /* fine: no crash file */
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  logconn.start=atoi(p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  logconn.end=atoi(p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  logconn.status=atoi(p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  strcpy(logconn.longname,p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  strcpy(logconn.shortname,p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  strcpy(logconn.phone,p);
 | 
				
			||||||
 | 
					  if (!fgets(aux,128,f)) return;
 | 
				
			||||||
 | 
					  if ((p=strtok(aux,"\n"))==NULL) return;
 | 
				
			||||||
 | 
					  strcpy(logconn.user,p);
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					  logconn.status=2; /* CRASH */
 | 
				
			||||||
 | 
					  write_log();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					make_guards(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  char temp[128];
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p = getenv ("HOME");
 | 
				
			||||||
 | 
					  strcpy (temp, p);
 | 
				
			||||||
 | 
					  strcat (temp, "/.yawmppp2/.floatlog");
 | 
				
			||||||
 | 
					  f=fopen(temp,"w");  
 | 
				
			||||||
 | 
					  if (!f) return;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  logconn.end=time(NULL);
 | 
				
			||||||
 | 
					  fprintf(f,"%lu\n%lu\n%d\n",logconn.start,logconn.end,logconn.status);
 | 
				
			||||||
 | 
					  fprintf(f,"%s\n%s\n%s\n",logconn.longname,logconn.shortname,logconn.phone);
 | 
				
			||||||
 | 
					  fprintf(f,"%s\n",logconn.user);
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					write_log(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  char temp[128];
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					  int i,s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p = getenv ("HOME");
 | 
				
			||||||
 | 
					  strcpy (temp, p);
 | 
				
			||||||
 | 
					  strcat (temp, "/.yawmppp2/logfile");
 | 
				
			||||||
 | 
					  f=fopen(temp,"a");  
 | 
				
			||||||
 | 
					  if (!f) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s=strlen(logconn.phone);
 | 
				
			||||||
 | 
					  for(i=0;i<s;i++)
 | 
				
			||||||
 | 
					    if (logconn.phone[i]=='\t')
 | 
				
			||||||
 | 
					      logconn.phone[i]=' ';
 | 
				
			||||||
 | 
					  s=strlen(logconn.shortname);
 | 
				
			||||||
 | 
					  for(i=0;i<s;i++)
 | 
				
			||||||
 | 
					    if (logconn.shortname[i]=='\t')
 | 
				
			||||||
 | 
					      logconn.shortname[i]=' ';
 | 
				
			||||||
 | 
					  s=strlen(logconn.longname);
 | 
				
			||||||
 | 
					  for(i=0;i<s;i++)
 | 
				
			||||||
 | 
					    if (logconn.longname[i]=='\t')
 | 
				
			||||||
 | 
					      logconn.longname[i]=' ';
 | 
				
			||||||
 | 
					  s=strlen(logconn.user);
 | 
				
			||||||
 | 
					  for(i=0;i<s;i++)
 | 
				
			||||||
 | 
					    if (logconn.user[i]=='\t')
 | 
				
			||||||
 | 
					      logconn.user[i]=' ';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fprintf(f,"%lu\t%lu\t%d\t%s\t%s\t%s\t%s\n",
 | 
				
			||||||
 | 
						  logconn.start,
 | 
				
			||||||
 | 
						  logconn.end,
 | 
				
			||||||
 | 
						  logconn.status,
 | 
				
			||||||
 | 
						  logconn.longname,
 | 
				
			||||||
 | 
						  logconn.shortname,
 | 
				
			||||||
 | 
						  logconn.phone,
 | 
				
			||||||
 | 
						  logconn.user);
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  chmod(temp,0600);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p = getenv ("HOME");
 | 
				
			||||||
 | 
					  strcpy (temp, p);
 | 
				
			||||||
 | 
					  strcat (temp, "/.yawmppp2/.floatlog");
 | 
				
			||||||
 | 
					  unlink(temp);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					warn_pref(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *p;
 | 
				
			||||||
 | 
					  char temp[128];
 | 
				
			||||||
 | 
					  FILE *f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  p=getenv("HOME");
 | 
				
			||||||
 | 
					  strcpy (temp, p);
 | 
				
			||||||
 | 
					  strcat (temp, "/.yawmppp2/.delayedupdate");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  f=fopen(temp,"w");
 | 
				
			||||||
 | 
					  if (!f) return;
 | 
				
			||||||
 | 
					  fprintf(f,"This file shouldn't last more than a few millisecs...\n");
 | 
				
			||||||
 | 
					  fclose(f);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* PPP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					open_ppp(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* Open the ppp device. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (ppp_open)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((ppp_h = socket (AF_INET, SOCK_DGRAM, 0)) >= 0)
 | 
				
			||||||
 | 
					    ppp_open = 1;  
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					close_ppp(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (!ppp_open)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  close(ppp_h);
 | 
				
			||||||
 | 
					  ppp_open=0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* other stuff */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					write_pid_file(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char *p;
 | 
				
			||||||
 | 
					    char temp[128];
 | 
				
			||||||
 | 
					    FILE *f;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p = getenv ("HOME");
 | 
				
			||||||
 | 
					    strcpy (temp, p);
 | 
				
			||||||
 | 
					    strcat (temp, "/.yawmppp2/yawmppp.pid");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    f=fopen(temp,"w");
 | 
				
			||||||
 | 
					    if (f) {
 | 
				
			||||||
 | 
					      fprintf(f,"%d",getpid());
 | 
				
			||||||
 | 
					      fclose(f);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					remove_pid_file(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char *p;
 | 
				
			||||||
 | 
					    char temp[128];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p = getenv ("HOME");
 | 
				
			||||||
 | 
					    strcpy (temp, p);
 | 
				
			||||||
 | 
					    strcat (temp, "/.yawmppp2/yawmppp.pid");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    unlink(temp);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					make_config_dir(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct stat ss;
 | 
				
			||||||
 | 
					  char tmp[256];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sprintf(tmp,"%s/.yawmppp2",getenv("HOME"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (stat(tmp,&ss)<0)
 | 
				
			||||||
 | 
					    mkdir(tmp,0700);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					grab_isp_info(int rof)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char *p;
 | 
				
			||||||
 | 
					    char temp[128];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p = getenv ("HOME");
 | 
				
			||||||
 | 
					    strcpy (temp, p);
 | 
				
			||||||
 | 
					    strcat (temp, "/.yawmppp2/yawmppprc");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    num_isps=GetISPInfo(temp,&IspData[0],MAX_ISPS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ((!num_isps)&&(rof)) {
 | 
				
			||||||
 | 
					      run_pref_app();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					run_pref_app(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (!fork()) {
 | 
				
			||||||
 | 
					    execlp("yawmppp.pref","yawmppp.pref",NULL);
 | 
				
			||||||
 | 
					    execlp("/usr/local/bin/yawmppp.pref","yawmppp.pref",NULL);
 | 
				
			||||||
 | 
					    execlp("/usr/bin/yawmppp.pref","yawmppp.pref",NULL);
 | 
				
			||||||
 | 
					    exit(2);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					run_log_app(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (!fork()) {
 | 
				
			||||||
 | 
					    execlp("yawmppp.log","yawmppp.log",NULL);
 | 
				
			||||||
 | 
					    execlp("/usr/local/bin/yawmppp.log","yawmppp.log",NULL);
 | 
				
			||||||
 | 
					    execlp("/usr/bin/yawmppp.log","yawmppp.log",NULL);
 | 
				
			||||||
 | 
					    exit(2);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* essential */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* get_statistics */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					get_statistics (char *devname, long *ip, long *op, long *is, long *os)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    struct ifpppstatsreq req;
 | 
				
			||||||
 | 
					    struct ppp_stats ppp_cur;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    memset (&ppp_cur, 0, sizeof (ppp_cur));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    open_ppp();
 | 
				
			||||||
 | 
					    if (!ppp_open)
 | 
				
			||||||
 | 
					      return(-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					memset(&req,0,sizeof(req));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LINUX
 | 
				
			||||||
 | 
					req.stats_ptr=(caddr_t) & req.stats;
 | 
				
			||||||
 | 
					strcpy(req.ifr__name, active_interface);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef FREEBSD
 | 
				
			||||||
 | 
					strcpy(req.ifr_name, active_interface);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 if (ioctl(ppp_h,SIOCGPPPSTATS,&req) >= 0)
 | 
				
			||||||
 | 
					   ppp_cur=req.stats;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 *op = ppp_cur.p.ppp_opackets;
 | 
				
			||||||
 | 
					 *ip = ppp_cur.p.ppp_ipackets;
 | 
				
			||||||
 | 
					 *is = ppp_cur.p.ppp_ibytes;
 | 
				
			||||||
 | 
					 *os = ppp_cur.p.ppp_obytes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* stillonline */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					stillonline (char *ifs)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LINUX
 | 
				
			||||||
 | 
					    FILE *fp;
 | 
				
			||||||
 | 
					    char temp[128];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef FREEBSD
 | 
				
			||||||
 | 
						struct ifreq req;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    int i=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef LINUX
 | 
				
			||||||
 | 
					    fp = fopen ("/proc/net/route", "r");
 | 
				
			||||||
 | 
					    if (fp)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
						  while (fgets (temp, 128, fp))
 | 
				
			||||||
 | 
						    {
 | 
				
			||||||
 | 
							if (strstr (temp, ifs))
 | 
				
			||||||
 | 
							  {
 | 
				
			||||||
 | 
							      i = 1;	/* Line is alive */
 | 
				
			||||||
 | 
							  }
 | 
				
			||||||
 | 
						    }
 | 
				
			||||||
 | 
						  fclose (fp);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef FREEBSD
 | 
				
			||||||
 | 
						strcpy(req.ifr_name,active_interface);
 | 
				
			||||||
 | 
						open_ppp();
 | 
				
			||||||
 | 
						if (!ppp_open) 
 | 
				
			||||||
 | 
						  return 0;
 | 
				
			||||||
 | 
						if (ioctl(ppp_h,SIOCGIFFLAGS,&req)>=0) {
 | 
				
			||||||
 | 
							if (req.ifr_flags&IFF_UP)
 | 
				
			||||||
 | 
							  i=1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						return i;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										36
									
								
								yawmppp/src/ycommon.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								yawmppp/src/ycommon.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef YAWMPPP_COMMON_H
 | 
				
			||||||
 | 
					#define YAWMPPP_COMMON_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX_ISPS 40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct LogStruct {
 | 
				
			||||||
 | 
					  time_t start;
 | 
				
			||||||
 | 
					  time_t end;
 | 
				
			||||||
 | 
					  int    status; /* 0=ok 1=error 2=crash */
 | 
				
			||||||
 | 
					  char   longname[128];
 | 
				
			||||||
 | 
					  char   shortname[16];
 | 
				
			||||||
 | 
					  char   phone[32];
 | 
				
			||||||
 | 
					  char   user[32];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void clean_guards(void);
 | 
				
			||||||
 | 
					void make_guards(void);
 | 
				
			||||||
 | 
					void write_log(void);
 | 
				
			||||||
 | 
					void warn_pref(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void open_ppp(void);
 | 
				
			||||||
 | 
					void close_ppp(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void write_pid_file(void);
 | 
				
			||||||
 | 
					void remove_pid_file(void);
 | 
				
			||||||
 | 
					void make_config_dir(void);
 | 
				
			||||||
 | 
					void grab_isp_info(int rof);
 | 
				
			||||||
 | 
					void run_pref_app(void);
 | 
				
			||||||
 | 
					void run_log_app(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int get_statistics (char *devname, long *ip, long *op, long *is, long *os);
 | 
				
			||||||
 | 
					int stillonline (char *ifs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue